# 宁夏智慧养殖监管平台 - 前端管理系统容器 # 多阶段构建,优化镜像大小 # 阶段1:构建阶段 FROM node:18-alpine as builder # 设置工作目录 WORKDIR /app # 复制package.json和package-lock.json COPY package*.json ./ # 安装构建依赖 RUN npm ci && npm cache clean --force # 复制源代码 COPY . . # 构建应用 RUN npm run build # 阶段2:生产阶段 FROM nginx:alpine # 安装基本工具 RUN apk add --no-cache curl # 创建nginx用户目录 RUN mkdir -p /var/cache/nginx/client_temp \ && mkdir -p /var/cache/nginx/proxy_temp \ && mkdir -p /var/cache/nginx/fastcgi_temp \ && mkdir -p /var/cache/nginx/uwsgi_temp \ && mkdir -p /var/cache/nginx/scgi_temp # 复制构建产物 COPY --from=builder /app/dist /usr/share/nginx/html # 复制Nginx配置 COPY nginx.conf /etc/nginx/nginx.conf COPY default.conf /etc/nginx/conf.d/default.conf # 创建日志目录 RUN mkdir -p /var/log/nginx # 设置文件权限 RUN chown -R nginx:nginx /usr/share/nginx/html \ && chown -R nginx:nginx /var/cache/nginx \ && chown -R nginx:nginx /var/log/nginx # 暴露端口 EXPOSE 80 # 健康检查 HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \ CMD curl -f http://localhost:80/ || exit 1 # 启动Nginx CMD ["nginx", "-g", "daemon off;"] # 元数据标签 LABEL maintainer="宁夏智慧养殖监管平台 " \ version="2.1.0" \ description="宁夏智慧养殖监管平台前端管理系统" \ application="nxxm-farming-platform" \ tier="frontend"