build: 新增 Dockerfile.prebuilt,.dockerignore 保留 dist
- 配合后端 scripts/push-build.sh:本机 astro build 后服务器只打镜像层,不跑 npm ci + build - .dockerignore 之前忽略 dist,会导致预构建 COPY dist 失败 - 新增 .gitattributes 固定 Dockerfile / yml / conf 为 LF
This commit is contained in:
23
Dockerfile.prebuilt
Normal file
23
Dockerfile.prebuilt
Normal file
@ -0,0 +1,23 @@
|
||||
# 预构建镜像: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"]
|
||||
Reference in New Issue
Block a user