Dockerfile 752 B

12345678910111213141516171819202122232425262728
  1. # syntax=docker/dockerfile:1
  2. FROM node:20-alpine AS builder
  3. ARG NEXT_PUBLIC_API_URL
  4. ARG NEXT_PUBLIC_MAP_PROVIDER
  5. ARG NEXT_PUBLIC_GIT_HASH
  6. ENV NEXT_PUBLIC_API_URL=$NEXT_PUBLIC_API_URL
  7. ENV NEXT_PUBLIC_MAP_PROVIDER=$NEXT_PUBLIC_MAP_PROVIDER
  8. ENV NEXT_PUBLIC_GIT_HASH=$NEXT_PUBLIC_GIT_HASH
  9. WORKDIR /app
  10. COPY package.json package-lock.json ./
  11. RUN --mount=type=cache,target=/root/.npm npm ci
  12. COPY . .
  13. RUN --mount=type=cache,target=/app/.next/cache npm run build
  14. FROM node:20-alpine AS runner
  15. WORKDIR /app
  16. ENV NODE_ENV=production
  17. COPY --from=builder /app/public ./public
  18. COPY --from=builder /app/.next/standalone ./
  19. COPY --from=builder /app/.next/static ./.next/static
  20. ENV HOSTNAME=0.0.0.0
  21. RUN apk add --no-cache curl
  22. EXPOSE 3000
  23. CMD ["node", "server.js"]