Created
December 5, 2021 20:03
-
-
Save leohmoraes/f8eb1abd28eedc4752136b684060283b to your computer and use it in GitHub Desktop.
docker node next jest
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Install dependencies only when needed | |
FROM node:lts-alpine AS deps | |
WORKDIR /opt/app | |
COPY package.json yarn.lock ./ | |
RUN yarn install --frozen-lockfile | |
# Rebuild the source code only when needed | |
# This is where because may be the case that you would try | |
# to build the app based on some `X_TAG` in my case (Git commit hash) | |
# but the code hasn't changed. | |
FROM node:lts-alpine AS builder | |
ENV NODE_ENV=production | |
WORKDIR /opt/app | |
COPY . . | |
COPY --from=deps /opt/app/node_modules ./node_modules | |
RUN yarn build | |
# Production image, copy all the files and run next | |
FROM node:lts-alpine AS runner | |
ARG X_TAG | |
WORKDIR /opt/app | |
ENV NODE_ENV=production | |
COPY --from=builder /opt/app/next.config.js ./ | |
COPY --from=builder /opt/app/public ./public | |
COPY --from=builder /opt/app/.next ./.next | |
COPY --from=builder /opt/app/node_modules ./node_modules | |
CMD ["node_modules/.bin/next", "start"] |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment