23 lines
803 B
Docker
23 lines
803 B
Docker
# 构建阶段:安装依赖并打包 H5
|
||
FROM node:18-alpine AS build
|
||
|
||
WORKDIR /app
|
||
|
||
COPY package*.json ./
|
||
RUN npm install
|
||
|
||
COPY . .
|
||
# 跳过 vue-tsc 类型检查直接打包(与本机已知 vue-tsc + Node 版本兼容问题无关,保证可构建)
|
||
RUN npx vite 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
|