# 预构建镜像:dist/ 在本机 build 好(构建期 SSG 数据经 SSH 隧道取自线上), # 服务器只装运行时依赖并打层,不跑 astro build。 # 由 backend/scripts/push-build.sh 与 backend/deploy.sh --prebuilt 使用。 FROM node:22-alpine WORKDIR /app ENV NODE_ENV=production \ HOST=0.0.0.0 \ PORT=3000 # 运行时依赖层:只在 package-lock 变化时重装,日常发布命中缓存 COPY package*.json ./ RUN npm ci --omit=dev && npm cache clean --force COPY dist ./dist EXPOSE 3000 HEALTHCHECK --interval=15s --timeout=3s --start-period=15s --retries=3 \ CMD nc -z 127.0.0.1 3000 || exit 1 CMD ["node", "./dist/server/entry.mjs"]