Created
September 12, 2023 04:44
-
-
Save adiwids/87a167b1436ae2b2bc307d4a394dbe62 to your computer and use it in GitHub Desktop.
Dockerfile NextJS 13 production container
This file contains hidden or 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
FROM node:18-bookworm AS DEPS_IMAGE | |
WORKDIR /app | |
COPY package.json package-lock.json ./ | |
RUN npm install --no-package-lock | |
RUN npm prune --production | |
FROM node:18-bookworm AS BUILD_IMAGE | |
ARG NODE_ENV=production | |
ENV NODE_ENV=${NODE_ENV} | |
WORKDIR /app | |
COPY . . | |
COPY --from=DEPS_IMAGE /app/node_modules ./node_modules | |
RUN npm run build | |
FROM node:18-bookworm AS RUNNER_IMAGE | |
ARG APP_API_HOST | |
ARG APP_PORT | |
ARG USER | |
ARG USERGROUP | |
ENV REACT_APP_API_URL=${APP_API_HOST} | |
ENV PORT=${APP_PORT} | |
RUN groupadd --gid ${USERGROUP} nodeapp | |
RUN useradd -G nodeapp -d /home/nextapp ${USER} | |
USER ${USER} | |
WORKDIR /home/nextapp | |
COPY --from=BUILD_IMAGE /app/package.json ./ | |
COPY --from=BUILD_IMAGE /app/node_modules ./node_modules | |
COPY --from=BUILD_IMAGE --chown=${USER}:${USERGROUP} /app/.next ./.next | |
COPY --from=BUILD_IMAGE /app/public ./public | |
EXPOSE ${APP_PORT} | |
CMD ["npm", "start"] |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment