Dockerfile 871 B

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