From c5b66c42987ea6f7607bc7e42276e73384ab751c Mon Sep 17 00:00:00 2001 From: Clemens Hering Date: Tue, 11 Nov 2025 06:33:37 +0100 Subject: [PATCH] back to alpine image --- Containerfile | 42 +++++++++++++++++------------------------- 1 file changed, 17 insertions(+), 25 deletions(-) diff --git a/Containerfile b/Containerfile index 51e707d..7770436 100644 --- a/Containerfile +++ b/Containerfile @@ -1,34 +1,26 @@ -########### -# BUILD STAGE -########### -FROM cgr.dev/chainguard/node:latest-dev AS build +# Multi-stage build for Astro static site +FROM node:22-alpine AS builder WORKDIR /app -# Copy dependency manifests +# Install deps COPY package*.json ./ +RUN npm ci || npm install -# Install all deps (inkl. dev) -RUN --mount=type=cache,target=/root/.npm npm install && npm ci - -# Copy app source and build +# Copy sources and build static output COPY . . RUN npm run build -########### -# RUNTIME STAGE -########### -FROM cgr.dev/chainguard/node:latest -ENV NODE_ENV=production +# ---- Runtime stage ---- +FROM node:22-alpine AS runtime WORKDIR /app - -# Copy only what’s needed to run -COPY --from=build /app/package*.json ./ -COPY --from=build /app/node_modules ./node_modules -COPY --from=build /app/dist ./dist -COPY --from=build /app/server.mjs ./server.mjs - -# Chainguard runs as nonroot by default (user `nonroot`) -USER nonroot +ENV NODE_ENV=production +ENV PORT=3000 +ENV WEB_ROOT=/app/dist +ENV TZ=Europe/Berlin +ENV ASTRO_TELEMETRY_DISABLED=1 +COPY --from=builder /app/dist /app/dist +COPY server.mjs /app/server.mjs +# Drop root: use the pre-created node user +USER node #EXPOSE 3000 - -CMD ["node", "./server.mjs"] \ No newline at end of file +CMD ["node", "/app/server.mjs"]