diff --git a/Dockerfile b/Dockerfile index 88570c5..8a4d24a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -19,17 +19,31 @@ RUN npm ci COPY . . +# Build arguments for NEXT_PUBLIC variables (can be overridden at build time) +ARG NEXT_PUBLIC_API_URL=https://api.lions.dev/btpxpress +ARG NEXT_PUBLIC_KEYCLOAK_URL=https://security.lions.dev +ARG NEXT_PUBLIC_KEYCLOAK_REALM=btpxpress +ARG NEXT_PUBLIC_KEYCLOAK_CLIENT_ID=btpxpress-frontend +ARG NEXT_PUBLIC_APP_ENV=production + +# Convert ARG to ENV for Next.js build process +ENV NEXT_PUBLIC_API_URL=${NEXT_PUBLIC_API_URL} +ENV NEXT_PUBLIC_KEYCLOAK_URL=${NEXT_PUBLIC_KEYCLOAK_URL} +ENV NEXT_PUBLIC_KEYCLOAK_REALM=${NEXT_PUBLIC_KEYCLOAK_REALM} +ENV NEXT_PUBLIC_KEYCLOAK_CLIENT_ID=${NEXT_PUBLIC_KEYCLOAK_CLIENT_ID} +ENV NEXT_PUBLIC_APP_ENV=${NEXT_PUBLIC_APP_ENV} + # Build Next.js application -ENV NODE_ENV production -ENV NEXT_TELEMETRY_DISABLED 1 +ENV NODE_ENV=production +ENV NEXT_TELEMETRY_DISABLED=1 RUN npm run build ## Stage 3: Production image FROM node:20-alpine AS runner WORKDIR /app -ENV NODE_ENV production -ENV NEXT_TELEMETRY_DISABLED 1 +ENV NODE_ENV=production +ENV NEXT_TELEMETRY_DISABLED=1 RUN addgroup --system --gid 1001 nodejs RUN adduser --system --uid 1001 nextjs @@ -43,8 +57,8 @@ USER nextjs EXPOSE 3000 -ENV PORT 3000 -ENV HOSTNAME "0.0.0.0" +ENV PORT=3000 +ENV HOSTNAME="0.0.0.0" # Health check HEALTHCHECK --interval=30s --timeout=10s --start-period=40s --retries=3 \