# syntax=docker/dockerfile:1 # ---- build ---- FROM node:22-alpine AS build WORKDIR /app RUN corepack enable COPY package.json pnpm-lock.yaml ./ RUN pnpm install --frozen-lockfile COPY . . ENV ASTRO_TELEMETRY_DISABLED=1 RUN pnpm build # ---- runtime: static files behind unprivileged nginx (non-root, read-only capable) ---- FROM nginxinc/nginx-unprivileged:1.27-alpine AS final COPY --chown=nginx:nginx nginx.conf /etc/nginx/conf.d/default.conf COPY --from=build --chown=nginx:nginx /app/dist /usr/share/nginx/html EXPOSE 1337 # runs as uid 101 (nginx) by default in this image