ARG NODE_VERSION=22-alpine ARG CADDY_VERSION=2.10-alpine FROM node:${NODE_VERSION} AS deps WORKDIR /app COPY package.json package-lock.json* ./ RUN --mount=type=cache,target=/root/.npm \ npm ci --no-audit --no-fund 2>/dev/null || npm install --no-audit --no-fund FROM node:${NODE_VERSION} AS builder WORKDIR /app ENV ASTRO_TELEMETRY_DISABLED=1 NODE_ENV=production COPY --from=deps /app/node_modules ./node_modules COPY . . RUN npm run build FROM caddy:${CADDY_VERSION} AS prod COPY --from=builder /app/dist /srv COPY Caddyfile /etc/caddy/Caddyfile EXPOSE 80 HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 \ CMD wget -q --spider http://127.0.0.1/ || exit 1 FROM node:${NODE_VERSION} AS dev WORKDIR /app ENV ASTRO_TELEMETRY_DISABLED=1 NODE_ENV=development COPY --from=deps /app/node_modules ./node_modules COPY . . EXPOSE 4321 CMD ["npm", "run", "dev", "--", "--host", "0.0.0.0"]