Last active
April 16, 2024 22:18
-
-
Save vanxh/0c3a62cc6bd6b8aa143c2e278d9e9dfa to your computer and use it in GitHub Desktop.
Dockerfile to deploy NextJS using yarn v3 (berry) PnP.
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
Dockerfile | |
.dockerignore | |
node_modules | |
npm-debug.log | |
README.md | |
# .next | |
.git | |
.DS_Store | |
.yarn/* | |
!.yarn/cache | |
!.yarn/patches | |
!.yarn/plugins | |
!.yarn/releases | |
!.yarn/sdks | |
!.yarn/versions |
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
# Install dependencies only when needed | |
FROM node:alpine AS deps | |
# Check https://github.com/nodejs/docker-node/tree/b4117f9333da4138b03a546ec926ef50a31506c3#nodealpine to understand why libc6-compat might be needed. | |
RUN apk add --no-cache libc6-compat | |
WORKDIR /app | |
COPY .yarn ./.yarn | |
COPY .pnp.cjs .yarnrc.yml package.json yarn.lock* ./ | |
RUN yarn install --immutable | |
FROM node:alpine AS runner | |
WORKDIR /app | |
COPY --from=deps /app/.yarn ./.yarn | |
COPY --from=deps /app/.pnp.cjs ./pnp.cjs | |
COPY . . | |
ENV NODE_ENV production | |
ENV NEXT_TELEMETRY_DISABLED 1 | |
RUN yarn build | |
RUN addgroup --system --gid 1001 nodejs | |
RUN adduser --system --uid 1001 nextjs | |
USER nextjs | |
EXPOSE 3000 | |
ENV PORT 3000 | |
CMD ["yarn","node", ".next/standalone/server.js"] |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
In my case I'm working with yarn 4.0.2 because it is needed by Storybook.
The key was copy .yarn folder:
and copy
yarnrc.yml
with nodeLinker: node-modules optionCOPY .yarnrc.yml ./
Thanks a lot to share it!
Here is my Dockerfile for Yarn 4.0.2
https://gist.github.com/molavec/89a184c8f257e2a025ebb1d63691c288