Dockerfile 961 B

1234567891011121314151617181920212223242526272829303132
  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_YANDEX_MAPS_API_KEY
  6. ARG NEXT_PUBLIC_YANDEX_GEOCODER_API_KEY
  7. ARG NEXT_PUBLIC_GIT_HASH
  8. ENV NEXT_PUBLIC_API_URL=$NEXT_PUBLIC_API_URL
  9. ENV NEXT_PUBLIC_MAP_PROVIDER=$NEXT_PUBLIC_MAP_PROVIDER
  10. ENV NEXT_PUBLIC_YANDEX_MAPS_API_KEY=$NEXT_PUBLIC_YANDEX_MAPS_API_KEY
  11. ENV NEXT_PUBLIC_YANDEX_GEOCODER_API_KEY=$NEXT_PUBLIC_YANDEX_GEOCODER_API_KEY
  12. ENV NEXT_PUBLIC_GIT_HASH=$NEXT_PUBLIC_GIT_HASH
  13. WORKDIR /app
  14. COPY package.json ./
  15. RUN --mount=type=cache,target=/root/.npm npm install
  16. COPY . .
  17. RUN --mount=type=cache,target=/app/.next/cache npm run build
  18. FROM node:20-alpine AS runner
  19. WORKDIR /app
  20. ENV NODE_ENV=production
  21. COPY --from=builder /app/public ./public
  22. COPY --from=builder /app/.next/standalone ./
  23. COPY --from=builder /app/.next/static ./.next/static
  24. ENV HOSTNAME=0.0.0.0
  25. RUN apk add --no-cache curl
  26. EXPOSE 3000
  27. CMD ["node", "server.js"]