infoalloggi-monorepo/apps/infoalloggi/Dockerfile

81 lines
2.4 KiB
Docker

FROM node:22-alpine AS base
FROM base AS deps
RUN apk add --no-cache libc6-compat openssl
WORKDIR /app
COPY package.json ./
ENV NODE_ENV=production
RUN npm i --omit=dev
FROM base AS builder
WORKDIR /app
COPY --from=deps /app/node_modules ./node_modules
COPY . .
ENV NODE_ENV=production \
NEXT_TELEMETRY_DISABLED=1 \
SKIP_REDIS="true"
ARG BASE_URL NEXT_PUBLIC_BASE_URL NEXT_PUBLIC_STRIPE_PUBLIC_KEY
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
FROM base AS runner
WORKDIR /app
ENV NODE_ENV=production \
NEXT_TELEMETRY_DISABLED=1 \
SKIP_REDIS="false" \
PORT=3000
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
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 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
CMD ["node", "server.js"]