version: '3.8' services: # MySQL 8.0 mysql: image: mysql:8.0 container_name: asset-mysql restart: always environment: MYSQL_ROOT_PASSWORD: 123456 MYSQL_DATABASE: ruoyi-vue-pro TZ: Asia/Shanghai ports: - "3306:3306" volumes: - ./data/mysql:/var/lib/mysql - ./sql:/docker-entrypoint-initdb.d command: - --default-authentication-plugin=mysql_native_password - --character-set-server=utf8mb4 - --collation-server=utf8mb4_unicode_ci networks: - asset-network # Redis 7.0 redis: image: redis:7.0-alpine container_name: asset-redis restart: always ports: - "6379:6379" volumes: - ./data/redis:/data command: redis-server --appendonly yes networks: - asset-network # Nacos 2.3 nacos: image: nacos/nacos-server:v2.3.0 container_name: asset-nacos restart: always environment: MODE: standalone SPRING_DATASOURCE_PLATFORM: mysql MYSQL_SERVICE_HOST: mysql MYSQL_SERVICE_PORT: 3306 MYSQL_SERVICE_DB_NAME: nacos_config MYSQL_SERVICE_USER: root MYSQL_SERVICE_PASSWORD: 123456 NACOS_AUTH_ENABLE: true NACOS_AUTH_TOKEN: SecretKey012345678901234567890123456789012345678901234567890123456789 NACOS_AUTH_IDENTITY_KEY: nacos NACOS_AUTH_IDENTITY_VALUE: nacos JVM_XMS: 512m JVM_XMX: 512m ports: - "8848:8848" - "9848:9848" volumes: - ./data/nacos/logs:/home/nacos/logs depends_on: - mysql networks: - asset-network # XXL-Job 2.4 xxl-job: image: xuxueli/xxl-job-admin:2.4.0 container_name: asset-xxl-job restart: always environment: PARAMS: > --spring.datasource.url=jdbc:mysql://mysql:3306/xxl_job?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai --spring.datasource.username=root --spring.datasource.password=123456 ports: - "9090:8080" depends_on: - mysql networks: - asset-network # Nginx nginx: image: nginx:alpine container_name: asset-nginx restart: always ports: - "80:80" - "443:443" volumes: - ./nginx/nginx.conf:/etc/nginx/nginx.conf:ro - ./nginx/html:/usr/share/nginx/html:ro - ./nginx/logs:/var/log/nginx networks: - asset-network networks: asset-network: driver: bridge