# Government Backend Dockerfile # 基于Node.js 18 Alpine镜像构建 FROM node:18-alpine # 设置工作目录 WORKDIR /app # 安装系统依赖 RUN apk add --no-cache \ # 用于数据库备份的MySQL客户端 mysql-client \ # 开发工具 git \ # 用于健康检查的curl curl \ && rm -rf /var/cache/apk/* # 复制package.json和package-lock.json COPY package*.json ./ # 安装Node.js依赖 RUN npm ci --only=production && npm cache clean --force # 复制应用代码 COPY . . # 创建必要的目录 RUN mkdir -p logs uploads temp # 设置文件权限 RUN chown -R node:node /app # 切换到非root用户 USER node # 暴露端口 EXPOSE 5352 # 健康检查 HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \ CMD curl -f http://localhost:5352/api/health || exit 1 # 启动应用 CMD ["npm", "start"] # 元数据标签 LABEL maintainer="宁夏智慧牧场政府端 " \ description="宁夏智慧牧场政府端后端服务" \ application="nxxm-government-platform" \ tier="backend"