diff --git a/Dockerfile b/Dockerfile index f4c60af0d..bab1e441a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ # Base -FROM node:18-alpine AS base -ENV NEXT_TELEMETRY_DISABLED 1 +FROM node:22-alpine AS base +ENV NEXT_TELEMETRY_DISABLED=1 # Dependencies @@ -11,8 +11,11 @@ WORKDIR /app COPY package*.json ./ COPY src/server/prisma ./src/server/prisma +# link ssl3 for latest Alpine +RUN sh -c '[ ! -e /lib/libssl.so.3 ] && ln -s /usr/lib/libssl.so.3 /lib/libssl.so.3 || echo "Link already exists"' + # Install dependencies, including dev (release builds should use npm ci) -ENV NODE_ENV development +ENV NODE_ENV=development RUN npm ci @@ -28,8 +31,11 @@ ENV NEXT_PUBLIC_GA4_MEASUREMENT_ID=${NEXT_PUBLIC_GA4_MEASUREMENT_ID} COPY --from=deps /app/node_modules ./node_modules COPY . . +# link ssl3 for latest Alpine +RUN sh -c '[ ! -e /lib/libssl.so.3 ] && ln -s /usr/lib/libssl.so.3 /lib/libssl.so.3 || echo "Link already exists"' + # Build the application -ENV NODE_ENV production +ENV NODE_ENV=production RUN npm run build # Reduce installed packages to production-only @@ -51,8 +57,8 @@ COPY --from=builder --chown=nextjs:nodejs /app/node_modules ./node_modules COPY --from=builder --chown=nextjs:nodejs /app/src/server/prisma ./src/server/prisma # Minimal ENV for production -ENV NODE_ENV production -ENV PATH $PATH:/app/node_modules/.bin +ENV NODE_ENV=production +ENV PATH=$PATH:/app/node_modules/.bin # Run as non-root user USER nextjs