Files
rheinsw-mono-repo/frontend/Dockerfile
Thatsaphorn Atchariyaphap 2123757099 Fix environment variable handling and update start command
Simplified environment variable substitution to improve consistency during builds. Modified the start command to source variables from .env, ensuring proper runtime configuration.
2025-06-01 20:46:17 +02:00

39 lines
993 B
Docker

# Use lightweight Node.js 20 base image
FROM node:20-alpine@sha256:9bef0ef1e268f60627da9ba7d7605e8831d5b56ad07487d24d1aa386336d1944 as builder
# Set working directory
WORKDIR /app
# Copy package files separately for better Docker caching
COPY package.json package-lock.json ./
# Install dependencies
RUN npm ci
# Copy entire project
COPY . .
## Set it as an environment variable for the build process
#ARG HCAPTCHA_SITE_KEY
#ENV NEXT_PUBLIC_HCAPTCHA_SITE_KEY=$HCAPTCHA_SITE_KEY
#
## Create a .env file before build
#RUN echo "NEXT_PUBLIC_HCAPTCHA_SITE_KEY=$HCAPTCHA_SITE_KEY"
# Build the Next.js app
RUN npm run build
# Use a minimal base image for running the app
FROM node:20-alpine@sha256:9bef0ef1e268f60627da9ba7d7605e8831d5b56ad07487d24d1aa386336d1944
WORKDIR /app
# Copy built files from the builder stage
COPY --from=builder /app ./
# Expose port
EXPOSE 3000
# Start Next.js in production mode
CMD ["/bin/sh", "-c", "set -a && [ -f .env ] && . .env && set +a && next start"]