diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000000..1df05e628f --- /dev/null +++ b/.dockerignore @@ -0,0 +1,4 @@ +Dockerfile +.dockerignore +node_modules +dist diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000000..2c3074a178 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,21 @@ +# +# BUILD CONTAINER +# +FROM node:16 as base +USER node +ENV NODE_ENV production +WORKDIR /app +COPY --chown=node:node package.json yarn.lock .yarnrc.yml tsconfig*.json ./ +COPY --chown=node:node .yarn/releases ./.yarn/releases +RUN yarn install --immutable +COPY --chown=node:node . . +RUN yarn run build + +# +# PRODUCTION CONTAINER +# +FROM node:16-alpine as production +USER node +COPY --chown=node:node --from=base /app/node_modules ./node_modules +COPY --chown=node:node --from=base /app/dist ./dist +CMD [ "node", "dist/main.js" ]