diff --git a/apps/infoalloggi/Dockerfile b/apps/infoalloggi/Dockerfile index 614e658..6f69619 100644 --- a/apps/infoalloggi/Dockerfile +++ b/apps/infoalloggi/Dockerfile @@ -1,155 +1,81 @@ FROM node:22-alpine AS base -# Dependencies stage -# This stage is used to install dependencies and prepare the environment FROM base AS deps RUN apk add --no-cache libc6-compat openssl WORKDIR /app COPY package.json ./ ENV NODE_ENV=production - -RUN echo "base variables: $NODE_ENV is set to $NODE_ENV" RUN npm i --omit=dev -RUN echo "Dependencies installed successfully" - -# Builder stage -# This stage is used to build the application FROM base AS builder WORKDIR /app COPY --from=deps /app/node_modules ./node_modules COPY . . -ENV NODE_ENV=production -ENV NEXT_TELEMETRY_DISABLED=1 -ENV SKIP_REDIS="true" +ENV NODE_ENV=production \ + NEXT_TELEMETRY_DISABLED=1 \ + SKIP_REDIS="true" -# Only essential build-time variables -ARG BASE_URL -ENV BASE_URL=$BASE_URL -ARG NEXT_PUBLIC_BASE_URL -ENV NEXT_PUBLIC_BASE_URL=$NEXT_PUBLIC_BASE_URL +ARG BASE_URL NEXT_PUBLIC_BASE_URL NEXT_PUBLIC_STRIPE_PUBLIC_KEY -ARG NEXT_PUBLIC_STRIPE_PUBLIC_KEY -ENV NEXT_PUBLIC_STRIPE_PUBLIC_KEY=$NEXT_PUBLIC_STRIPE_PUBLIC_KEY - -# ARG INTERNAL_BASE_URL -# ENV INTERNAL_BASE_URL=$INTERNAL_BASE_URL -# ARG POSTGRES_USER -# ARG POSTGRES_PASSWORD -# ARG POSTGRES_DB -# ARG PGHOST -# ARG PGPORT -# ENV PGHOST=$PGHOST -# ENV POSTGRES_DB=$POSTGRES_DB -# ENV PGPORT=$PGPORT -# ENV POSTGRES_USER=$POSTGRES_USER -# ENV POSTGRES_PASSWORD=$POSTGRES_PASSWORD -# ENV JWT_SECRET="build-time-mock" -# ENV BACKENDSERVER_URL="http://backend:1323" -ENV STRIPE_SECRET_KEY="mock" -ENV STRIPE_WEBHOOK_SECRET="mock" -# ENV FIC_CLIENT_ID="mock" -# ENV FIC_ACCESS_TOKEN="mock" -# ENV FIC_COMPANY_ID="mock" -# ENV ARUBA_USER="mock" -# ENV ARUBA_PASS="mock" -# ENV EXP_API_USER="mock" -# ENV EXP_API_PASS="mock" -# ENV KEYDB_URL="localhost:6380" -# ENV TILES_URL="localhost:6379" -# ENV SKEBBY_USER="mock" -# ENV SKEBBY_PASS="mock" -# ENV REVALIDATION_SECRET="mock" -# ENV STORAGE_URL="mock" -# ENV STORAGE_TOKEN="mock" +ENV BASE_URL=$BASE_URL \ + NEXT_PUBLIC_BASE_URL=$NEXT_PUBLIC_BASE_URL \ + NEXT_PUBLIC_STRIPE_PUBLIC_KEY=$NEXT_PUBLIC_STRIPE_PUBLIC_KEY \ + STRIPE_SECRET_KEY="mock" \ + STRIPE_WEBHOOK_SECRET="mock" RUN SKIP_ENV_VALIDATION=1 npm run build - -RUN echo "Build completed successfully" -RUN echo "Build with BASE_URL=$BASE_URL and NEXT_PUBLIC_BASE_URL=$NEXT_PUBLIC_BASE_URL" - -# Runner stage -# This stage is used to run the built application FROM base AS runner WORKDIR /app -ENV NODE_ENV=production -ENV NEXT_TELEMETRY_DISABLED=1 -ENV SKIP_REDIS="false" +ENV NODE_ENV=production \ + NEXT_TELEMETRY_DISABLED=1 \ + SKIP_REDIS="false" \ + PORT=3000 -# Essential runtime variables -ARG BASE_URL -ENV BASE_URL=$BASE_URL -ARG NEXT_PUBLIC_BASE_URL -ENV NEXT_PUBLIC_BASE_URL=$NEXT_PUBLIC_BASE_URL -ARG INTERNAL_BASE_URL -ENV INTERNAL_BASE_URL=$INTERNAL_BASE_URL -ARG POSTGRES_USER -ARG POSTGRES_PASSWORD -ARG POSTGRES_DB -ARG PGHOST -ARG PGPORT -ENV PGHOST=$PGHOST -ENV POSTGRES_DB=$POSTGRES_DB -ENV PGPORT=$PGPORT -ENV POSTGRES_USER=$POSTGRES_USER -ENV POSTGRES_PASSWORD=$POSTGRES_PASSWORD -ARG JWT_SECRET -ENV JWT_SECRET=$JWT_SECRET -ARG BACKENDSERVER_URL -ENV BACKENDSERVER_URL=$BACKENDSERVER_URL -ARG STRIPE_SECRET_KEY -ENV STRIPE_SECRET_KEY=$STRIPE_SECRET_KEY -ARG NEXT_PUBLIC_STRIPE_PUBLIC_KEY -ENV NEXT_PUBLIC_STRIPE_PUBLIC_KEY=$NEXT_PUBLIC_STRIPE_PUBLIC_KEY -ARG STRIPE_WEBHOOK_SECRET -ENV STRIPE_WEBHOOK_SECRET=$STRIPE_WEBHOOK_SECRET -ARG FIC_CLIENT_ID -ENV FIC_CLIENT_ID=$FIC_CLIENT_ID -ARG FIC_ACCESS_TOKEN -ENV FIC_ACCESS_TOKEN=$FIC_ACCESS_TOKEN -ARG FIC_COMPANY_ID -ENV FIC_COMPANY_ID=$FIC_COMPANY_ID -ARG ARUBA_USER -ENV ARUBA_USER=$ARUBA_USER -ARG ARUBA_PASS -ENV ARUBA_PASS=$ARUBA_PASS -ARG EXP_API_USER -ENV EXP_API_USER=$EXP_API_USER -ARG EXP_API_PASS -ENV EXP_API_PASS=$EXP_API_PASS -ARG KEYDB_URL -ENV KEYDB_URL=$KEYDB_URL -ARG TILES_URL -ENV TILES_URL=$TILES_URL -ARG SKEBBY_USER -ENV SKEBBY_USER=$SKEBBY_USER -ARG SKEBBY_PASS -ENV SKEBBY_PASS=$SKEBBY_PASS -ENV REVALIDATION_SECRET="SWKpgaaLfsyeqV1eOT0WG7TUFBewir8kJXure3O37ki8Lt4Z4IiEgBW4zPHDdM5c" -ARG STORAGE_URL -ENV STORAGE_URL=$STORAGE_URL -ARG STORAGE_TOKEN -ENV STORAGE_TOKEN=$STORAGE_TOKEN +ARG BASE_URL POSTGRES_PASSWORD POSTGRES_DB PGHOST PGPORT JWT_SECRET BACKENDSERVER_URL STRIPE_SECRET_KEY \ + NEXT_PUBLIC_STRIPE_PUBLIC_KEY STRIPE_WEBHOOK_SECRET FIC_CLIENT_ID FIC_ACCESS_TOKEN FIC_COMPANY_ID ARUBA_USER \ + ARUBA_PASS EXP_API_USER EXP_API_PASS KEYDB_URL TILES_URL SKEBBY_USER SKEBBY_PASS STORAGE_URL STORAGE_TOKEN \ + NEXT_PUBLIC_BASE_URL INTERNAL_BASE_URL POSTGRES_USER -RUN apk add --no-cache curl +ENV BASE_URL=$BASE_URL \ + NEXT_PUBLIC_BASE_URL=$NEXT_PUBLIC_BASE_URL \ + INTERNAL_BASE_URL=$INTERNAL_BASE_URL \ + PGHOST=$PGHOST \ + POSTGRES_DB=$POSTGRES_DB \ + PGPORT=$PGPORT \ + POSTGRES_USER=$POSTGRES_USER \ + POSTGRES_PASSWORD=$POSTGRES_PASSWORD \ + JWT_SECRET=$JWT_SECRET \ + BACKENDSERVER_URL=$BACKENDSERVER_URL \ + STRIPE_SECRET_KEY=$STRIPE_SECRET_KEY \ + NEXT_PUBLIC_STRIPE_PUBLIC_KEY=$NEXT_PUBLIC_STRIPE_PUBLIC_KEY \ + STRIPE_WEBHOOK_SECRET=$STRIPE_WEBHOOK_SECRET \ + FIC_CLIENT_ID=$FIC_CLIENT_ID \ + FIC_ACCESS_TOKEN=$FIC_ACCESS_TOKEN \ + FIC_COMPANY_ID=$FIC_COMPANY_ID \ + ARUBA_USER=$ARUBA_USER \ + ARUBA_PASS=$ARUBA_PASS \ + EXP_API_USER=$EXP_API_USER \ + EXP_API_PASS=$EXP_API_PASS \ + KEYDB_URL=$KEYDB_URL \ + TILES_URL=$TILES_URL \ + SKEBBY_USER=$SKEBBY_USER \ + SKEBBY_PASS=$SKEBBY_PASS \ + REVALIDATION_SECRET="SWKpgaaLfsyeqV1eOT0WG7TUFBewir8kJXure3O37ki8Lt4Z4IiEgBW4zPHDdM5c" \ + STORAGE_URL=$STORAGE_URL \ + STORAGE_TOKEN=$STORAGE_TOKEN -RUN addgroup -g 1001 -S nodejs +RUN addgroup -g 1001 -S nodejs RUN adduser -S nextjs -u 1001 COPY --from=builder /app/public ./public - COPY --from=builder --chown=nextjs:nodejs /app/.next/standalone ./ COPY --from=builder --chown=nextjs:nodejs /app/.next/static ./.next/static USER nextjs - EXPOSE 3000 -ENV PORT=3000 - -RUN echo "Starting application with BASE_URL=$BASE_URL and NEXT_PUBLIC_BASE_URL=$NEXT_PUBLIC_BASE_URL" CMD ["node", "server.js"]