QAUP_Management/deploy/docker/nginx/Dockerfile

43 lines
1.1 KiB
Docker

# 多阶段构建 - 前端构建阶段
FROM m.daocloud.io/docker.io/library/node:lts-alpine AS frontend-builder
# 设置工作目录
WORKDIR /app
# 复制前端源码
COPY qaup-ui/ ./
# 安装依赖并构建
RUN npm install && npm run build:prod
# Nginx 运行阶段
FROM m.daocloud.io/docker.io/library/nginx:stable-alpine
# 安装必要工具
RUN apk add --no-cache curl
# 创建 nginx 用户目录
RUN mkdir -p /var/cache/nginx/client_temp && \
chown -R nginx:nginx /var/cache/nginx
# 复制构建好的前端文件
COPY --from=frontend-builder /app/dist /usr/share/nginx/html
# 复制 Nginx 配置文件
COPY deploy/docker/nginx/nginx.conf /etc/nginx/nginx.conf
COPY deploy/docker/nginx/default.conf /etc/nginx/conf.d/default.conf
COPY deploy/docker/nginx/nginx-env.conf.template /etc/nginx/conf.d/nginx-env.conf.template
COPY deploy/docker/nginx/start-nginx.sh /start-nginx.sh
# 设置执行权限
RUN chmod +x /start-nginx.sh
# 暴露端口
EXPOSE 80
# 健康检查
HEALTHCHECK --interval=30s --timeout=10s --start-period=30s --retries=3 \
CMD curl -f http://localhost/health || exit 1
# 启动 Nginx
CMD ["/start-nginx.sh"]