diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..e0e310e --- /dev/null +++ b/.dockerignore @@ -0,0 +1,4 @@ +node_modules +.next +.git +.github diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..8ecb868 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,28 @@ +FROM node:19-alpine as builder +WORKDIR /app +COPY package.json yarn.lock ./ +RUN yarn install +COPY . . +RUN apk --update add patch +RUN patch next.config.js next-config.patch +RUN yarn build + +FROM node:19-alpine as runner +WORKDIR /app +ENV NODE_ENV=production +COPY --from=builder /app/package.json . +COPY --from=builder /app/yarn.lock . +COPY --from=builder /app/next.config.js . +COPY --from=builder /app/public ./public +COPY --from=builder /app/.next/standalone ./ +COPY --from=builder /app/.next/static ./.next/static + +EXPOSE 3000 +CMD ["node", "server.js"] + +# Labels +# https://github.com/opencontainers/image-spec/blob/main/annotations.md +LABEL org.opencontainers.image.title="mars-fe" +LABEL org.opencontainers.image.description="Mars Protocol Osmosis Outpost Frontend" +LABEL org.opencontainers.image.authors="andrey.arapov@nixaid.com" +LABEL org.opencontainers.image.source=https://github.com/mars-protocol/interface diff --git a/next-config.patch b/next-config.patch new file mode 100644 index 0000000..00e571c --- /dev/null +++ b/next-config.patch @@ -0,0 +1,16 @@ +diff --git a/next.config.js b/next.config.js +index 2801090..4b5fabe 100644 +--- a/next.config.js ++++ b/next.config.js +@@ -48,6 +48,11 @@ const moduleExports = { + }, + ] + }, ++ sentry: { ++ disableServerWebpackPlugin: true, ++ disableClientWebpackPlugin: true, ++ }, ++ output: 'standalone' + } + + const sentryWebpackPluginOptions = {