All checks were successful
continuous-integration/drone/push Build is passing
- 分离测试/生产环境的前端镜像构建 - nginx 配置使用 BACKEND_HOST 变量区分环境 - 生产环境添加独立的 Docker network - 生产环境使用独立的密钥配置 (xxx_prod) - 修复前端空白问题:确保前后端在同一 network
28 lines
716 B
Docker
28 lines
716 B
Docker
FROM node:20-alpine as builder
|
|
|
|
WORKDIR /app
|
|
|
|
# 安装依赖(使用淘宝镜像)
|
|
COPY frontend/package.json ./
|
|
RUN npm config set registry https://registry.npmmirror.com && npm install
|
|
|
|
# 构建
|
|
COPY frontend/ .
|
|
RUN npm run build
|
|
|
|
# 生产镜像
|
|
FROM nginx:alpine
|
|
|
|
# 后端服务地址(通过 build-arg 传入,构建时替换)
|
|
ARG BACKEND_HOST=platform-backend-test
|
|
|
|
COPY --from=builder /app/dist /usr/share/nginx/html
|
|
COPY deploy/nginx/frontend.conf /etc/nginx/conf.d/default.conf
|
|
|
|
# 在构建时替换后端地址(只替换 BACKEND_HOST 变量)
|
|
RUN sed -i "s/\${BACKEND_HOST}/${BACKEND_HOST}/g" /etc/nginx/conf.d/default.conf
|
|
|
|
EXPOSE 80
|
|
|
|
CMD ["nginx", "-g", "daemon off;"]
|