pig-mesh/pig的Docker容器化部署实战指南

pig-mesh/pig的Docker容器化部署实战指南

【免费下载链接】pig ↥ ↥ ↥ 点击关注更新,基于 Spring Cloud 2024 、Spring Boot 3.4、 OAuth2 的 RBAC 权限管理系统 【免费下载链接】pig 项目地址: https://gitcode.com/pig-mesh/pig

概述

pig-mesh/pig是基于Spring Cloud 2025、Spring Boot 3.5、OAuth2的RBAC(Role-Based Access Control,基于角色的访问控制)企业级快速开发平台。本文将详细介绍如何通过Docker容器化方式部署整个pig微服务系统,涵盖从环境准备到完整部署的全流程。

系统架构概览

pig系统采用微服务架构,主要包含以下核心组件:

mermaid

环境要求

在开始部署前,请确保满足以下环境要求:

组件版本要求说明
Docker20.10+容器运行时环境
Docker Compose2.0+容器编排工具
系统内存≥4GB推荐8GB以上
磁盘空间≥2GB用于存储镜像和数据

Docker Compose配置详解

pig项目提供了完整的docker-compose.yml文件,用于一键部署所有服务:

version: '3.8'

services:
  # MySQL数据库服务
  pig-mysql:
    build: ./db
    environment:
      MYSQL_ROOT_HOST: "%"
      MYSQL_ROOT_PASSWORD: root
    ports:
      - "33306:3306"
    networks:
      - spring_cloud_default

  # Redis缓存服务
  pig-redis:
    image: registry.cn-hangzhou.aliyuncs.com/dockerhub_mirror/redis
    ports:
      - "36379:6379"
    networks:
      - spring_cloud_default

  # Nacos注册中心
  pig-register:
    build: ./pig-register
    ports:
      - "8848:8848"
      - "9848:9848"
      - "8080:8080"
    environment:
      MYSQL_HOST: pig-mysql
      REDIS_HOST: pig-redis
    networks:
      - spring_cloud_default

  # API网关服务
  pig-gateway:
    build: ./pig-gateway
    ports:
      - "9999:9999"
    environment:
      REDIS_HOST: pig-redis
      NACOS_HOST: pig-register
    networks:
      - spring_cloud_default

  # 认证授权服务
  pig-auth:
    build: ./pig-auth
    environment:
      REDIS_HOST: pig-redis
      NACOS_HOST: pig-register
    networks:
      - spring_cloud_default

  # 用户权限管理服务
  pig-upms:
    build: ./pig-upms/pig-upms-biz
    environment:
      MYSQL_HOST: pig-mysql
      REDIS_HOST: pig-redis
      NACOS_HOST: pig-register
    networks:
      - spring_cloud_default

networks:
  spring_cloud_default:
    driver: bridge

各服务Dockerfile解析

1. 网关服务Dockerfile

FROM registry.cn-hangzhou.aliyuncs.com/dockerhub_mirror/java:21-anolis

WORKDIR /pig-gateway

ARG JAR_FILE=target/pig-gateway.jar
COPY ${JAR_FILE} app.jar

EXPOSE 9999

ENV TZ=Asia/Shanghai 
ENV JAVA_OPTS="-Xms128m -Xmx256m -Djava.security.egd=file:/dev/./urandom"

CMD sleep 60; java $JAVA_OPTS -jar app.jar

关键配置说明:

  • 使用Java 21基础镜像
  • 设置时区为Asia/Shanghai
  • JVM内存配置:初始128MB,最大256MB
  • 启动前等待60秒确保依赖服务就绪

2. 数据库服务Dockerfile

FROM registry.cn-hangzhou.aliyuncs.com/dockerhub_mirror/mysql-server:8.0.32

ENV TZ=Asia/Shanghai

RUN ln -sf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

COPY ./pig.sql /docker-entrypoint-initdb.d
COPY ./pig_config.sql /docker-entrypoint-initdb.d

EXPOSE 3306

初始化脚本:

  • pig.sql:核心业务表结构
  • pig_config.sql:系统配置数据

部署步骤详解

步骤1:克隆项目代码

git clone https://gitcode.com/pig-mesh/pig.git
cd pig

步骤2:构建项目JAR包

# 使用Maven编译项目
mvn clean package -DskipTests

步骤3:启动Docker容器

# 使用Docker Compose一键启动所有服务
docker-compose up -d

# 查看服务启动状态
docker-compose ps

# 查看实时日志
docker-compose logs -f

步骤4:验证服务状态

# 检查Nacos注册中心
curl http://localhost:8848/nacos/

# 检查网关服务
curl http://localhost:9999/

# 查看各容器状态
docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}"

服务启动顺序与依赖关系

微服务系统的启动需要遵循特定的依赖顺序:

mermaid

环境变量配置说明

各微服务通过环境变量进行配置:

服务环境变量说明默认值
所有Java服务JAVA_OPTSJVM参数-Xms128m -Xmx256m
所有Java服务TZ时区设置Asia/Shanghai
NacosMYSQL_HOSTMySQL主机pig-mysql
NacosREDIS_HOSTRedis主机pig-redis
业务服务NACOS_HOSTNacos主机pig-register

常见问题与解决方案

问题1:容器启动超时

症状:服务启动失败,提示连接超时 解决方案:增加启动等待时间

# 在Dockerfile中增加等待时间
CMD sleep 120; java $JAVA_OPTS -jar app.jar

问题2:内存不足

症状:容器频繁重启,JVM内存溢出 解决方案:调整JVM内存参数

environment:
  JAVA_OPTS: "-Xms256m -Xmx512m"

问题3:端口冲突

症状:端口已被占用,服务启动失败 解决方案:修改docker-compose中的端口映射

ports:
  - "19999:9999"  # 将外部端口改为19999

监控与维护

服务健康检查

# 检查所有容器状态
docker-compose ps

# 查看特定服务日志
docker-compose logs pig-gateway

# 进入容器内部调试
docker-compose exec pig-mysql mysql -uroot -proot

资源监控

# 查看容器资源使用情况
docker stats

# 查看系统资源使用
docker system df

最佳实践建议

  1. 生产环境部署

    • 使用独立的Docker网络
    • 配置资源限制(CPU、内存)
    • 启用日志轮转
    • 设置健康检查探针
  2. 性能优化

    • 根据实际负载调整JVM参数
    • 配置数据库连接池
    • 启用Redis缓存优化
  3. 安全加固

    • 修改默认密码
    • 限制网络访问
    • 定期更新基础镜像

总结

通过Docker容器化部署pig微服务系统,可以快速搭建一套完整的企业级权限管理系统。本文详细介绍了部署流程、配置说明和常见问题解决方案,帮助开发者快速上手和实践。

整个部署过程遵循基础设施→注册中心→业务服务的顺序,确保服务间的依赖关系正确建立。通过合理的环境变量配置和资源管理,可以保证系统稳定高效运行。

【免费下载链接】pig ↥ ↥ ↥ 点击关注更新,基于 Spring Cloud 2024 、Spring Boot 3.4、 OAuth2 的 RBAC 权限管理系统 【免费下载链接】pig 项目地址: https://gitcode.com/pig-mesh/pig

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值