Files
nxxmdata/admin-system/Dockerfile
2025-09-12 21:53:14 +08:00

66 lines
1.5 KiB
Docker
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 宁夏智慧养殖监管平台 - 前端管理系统容器
# 多阶段构建,优化镜像大小
# 阶段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="宁夏智慧养殖监管平台 <support@nxxm.com>" \
version="2.1.0" \
description="宁夏智慧养殖监管平台前端管理系统" \
application="nxxm-farming-platform" \
tier="frontend"