version: '3.8' services: # MySQL数据库 mysql: image: mysql:8.0 container_name: fund-mysql environment: MYSQL_ROOT_PASSWORD: root123456 MYSQL_DATABASE: fundplatform MYSQL_USER: funduser MYSQL_PASSWORD: fund123456 TZ: Asia/Shanghai ports: - "3306:3306" volumes: - mysql-data:/var/lib/mysql - ./init:/docker-entrypoint-initdb.d command: --default-authentication-plugin=mysql_native_password --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci networks: - fund-network healthcheck: test: ["CMD", "mysqladmin", "ping", "-h", "localhost"] interval: 10s timeout: 5s retries: 5 # Redis缓存 redis: image: redis:7-alpine container_name: fund-redis ports: - "6379:6379" volumes: - redis-data:/data - ./redis/redis.conf:/usr/local/etc/redis/redis.conf command: redis-server /usr/local/etc/redis/redis.conf --requirepass zjf@123456 networks: - fund-network healthcheck: test: ["CMD", "redis-cli", "ping"] interval: 10s timeout: 5s retries: 5 # Nacos服务注册中心 nacos: image: nacos/nacos-server:v2.3.0 container_name: fund-nacos environment: MODE: standalone SPRING_DATASOURCE_PLATFORM: mysql MYSQL_SERVICE_HOST: mysql MYSQL_SERVICE_DB_NAME: nacos MYSQL_SERVICE_PORT: 3306 MYSQL_SERVICE_USER: root MYSQL_SERVICE_PASSWORD: root123456 NACOS_AUTH_ENABLE: true NACOS_CORE_AUTH_SERVER_IDENTITY_KEY: fundplatform NACOS_CORE_AUTH_SERVER_IDENTITY_VALUE: fundplatform123 NACOS_CORE_AUTH_DEFAULT_TOKEN_SECRET_KEY: VGhpc0lzTXlDdXN0b21TZWNyZXRLZXkwMTIzNDU2Nzg= JVM_XMS: 512m JVM_XMX: 512m ports: - "8848:8848" - "9848:9848" volumes: - nacos-data:/home/nacos/data networks: - fund-network depends_on: mysql: condition: service_healthy # fund-sys服务 fund-sys: build: context: ../../fundplatform dockerfile: fund-sys/Dockerfile container_name: fund-sys environment: SPRING_PROFILES_ACTIVE: docker NACOS_SERVER_ADDR: nacos:8848 MYSQL_HOST: mysql REDIS_HOST: redis REDIS_PASSWORD: zjf@123456 JVM_OPTS: -Xms512m -Xmx1024m ports: - "8080:8080" volumes: - ./logs/fund-sys:/app/logs networks: - fund-network depends_on: mysql: condition: service_healthy redis: condition: service_healthy nacos: condition: service_started restart: unless-stopped # fund-cust服务 fund-cust: build: context: ../../fundplatform dockerfile: fund-cust/Dockerfile container_name: fund-cust environment: SPRING_PROFILES_ACTIVE: docker NACOS_SERVER_ADDR: nacos:8848 MYSQL_HOST: mysql REDIS_HOST: redis REDIS_PASSWORD: zjf@123456 JVM_OPTS: -Xms512m -Xmx1024m ports: - "8082:8082" volumes: - ./logs/fund-cust:/app/logs networks: - fund-network depends_on: mysql: condition: service_healthy redis: condition: service_healthy nacos: condition: service_started restart: unless-stopped # fund-proj服务 fund-proj: build: context: ../../fundplatform dockerfile: fund-proj/Dockerfile container_name: fund-proj environment: SPRING_PROFILES_ACTIVE: docker NACOS_SERVER_ADDR: nacos:8848 MYSQL_HOST: mysql REDIS_HOST: redis REDIS_PASSWORD: zjf@123456 JVM_OPTS: -Xms512m -Xmx1024m ports: - "8081:8081" volumes: - ./logs/fund-proj:/app/logs networks: - fund-network depends_on: mysql: condition: service_healthy redis: condition: service_healthy nacos: condition: service_started restart: unless-stopped # Nginx网关 nginx: image: nginx:alpine container_name: fund-nginx ports: - "80:80" - "443:443" volumes: - ./nginx/nginx.conf:/etc/nginx/nginx.conf - ./nginx/html:/usr/share/nginx/html networks: - fund-network depends_on: - fund-sys - fund-cust - fund-proj volumes: mysql-data: redis-data: nacos-data: networks: fund-network: driver: bridge