22 lines
676 B
Docker
22 lines
676 B
Docker
# 构建阶段:安装依赖并打包 H5
|
|
FROM node:18-alpine AS build
|
|
|
|
WORKDIR /app
|
|
|
|
COPY package*.json ./
|
|
RUN npm ci
|
|
|
|
COPY . .
|
|
RUN npm run build
|
|
|
|
# 运行阶段:nginx 托管静态资源并反向代理 /api 到后端
|
|
# 锁定 1.28-alpine:测试服务器 Docker 的 seccomp 拦截 pwrite 系统调用,
|
|
# 新版 nginx(>=1.31) 用 pwrite 写 pid 文件会被拦导致致命退出;1.28 用 write() 可正常启动。
|
|
FROM nginx:1.28-alpine
|
|
|
|
COPY --from=build /app/dist /usr/share/nginx/html
|
|
# 覆盖 nginx 默认主配置(含唯一可写的 pid /tmp/nginx.pid,规避受限容器内 /run 不可写导致反复重启)
|
|
COPY nginx.conf /etc/nginx/nginx.conf
|
|
|
|
EXPOSE 80
|