Guest User

Dockerfile

a guest
Jan 14th, 2025
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.53 KB | None | 0 0
  1. # syntax = docker/dockerfile:1
  2.  
  3. # Adjust NODE_VERSION as desired
  4. ARG NODE_VERSION=20
  5. FROM node:${NODE_VERSION} as base
  6.  
  7. LABEL fly_launch_runtime="Next.js"
  8.  
  9. # Next.js app lives here
  10. WORKDIR /app
  11.  
  12. ARG NEXT_PUBLIC_PUSHER_KEY
  13. ARG NEXT_PUBLIC_PUSHER_CLUSTER
  14. ARG SENTRY_RELEASE
  15. ARG NODE_ENV
  16. ARG NEXT_PUBLIC_DOMAIN
  17. ARG NEXT_PUBLIC_IMGIX_URL
  18.  
  19. # Set environment variables based on arguments
  20. ENV NEXT_PUBLIC_PUSHER_KEY=$NEXT_PUBLIC_PUSHER_KEY
  21. ENV NEXT_PUBLIC_PUSHER_CLUSTER=$NEXT_PUBLIC_PUSHER_CLUSTER
  22. ENV SENTRY_RELEASE=$SENTRY_RELEASE
  23. ENV NODE_ENV=$NODE_ENV
  24. ENV NEXT_PUBLIC_DOMAIN=$NEXT_PUBLIC_DOMAIN
  25. ENV NEXT_PUBLIC_IMGIX_URL=$NEXT_PUBLIC_IMGIX_URL
  26.  
  27. # Throw-away build stage to reduce size of final image
  28. FROM base as build
  29.  
  30. # Install packages needed to build node modules
  31. RUN apt-get update -qq && \
  32. apt-get install --no-install-recommends -y build-essential node-gyp pkg-config python-is-python3
  33.  
  34. # Install node modules
  35. COPY package-lock.json package.json ./
  36. RUN npm ci --include=dev
  37.  
  38. # Copy application code
  39. COPY . .
  40.  
  41. # Use all secrets from the build context
  42. RUN --mount=type=secret,id=ALL_SECRETS \
  43. eval "$(base64 -d /run/secrets/ALL_SECRETS)" && \
  44. echo "Using secrets during build!" && \
  45. npx prisma generate && \
  46. npm run build
  47.  
  48. # Remove development dependencies
  49. RUN npm prune --omit=dev
  50.  
  51.  
  52. # Final stage for app image
  53. FROM base
  54.  
  55. # Copy built application
  56. COPY --from=build /app /app
  57.  
  58. # Start the server by default, this can be overwritten at runtime
  59. EXPOSE 3000
  60. CMD [ "npm", "run", "start" ]
  61.  
Add Comment
Please, Sign In to add comment