services: mysql: image: crpi-yilnm6upy4pmbp67.cn-shenzhen.personal.cr.aliyuncs.com/ljwx/ljwx-mysql:${MYSQL_IMAGE_VERSION:-1.2.16} container_name: ljwx-mysql restart: unless-stopped environment: MYSQL_ROOT_PASSWORD: 123456 MYSQL_DATABASE: lj-06 MYSQL_CHARACTER_SET_SERVER: utf8mb4 MYSQL_COLLATION_SERVER: utf8mb4_unicode_ci TZ: Asia/Shanghai ports: - "3306:3306" volumes: - mysql_data:/var/lib/mysql - ./logs/mysql:/var/log/mysql - ./backup/mysql:/backup/mysql command: - --default-authentication-plugin=mysql_native_password - --character-set-server=utf8mb4 - --collation-server=utf8mb4_unicode_ci - --max_connections=200 - --wait_timeout=28800 - --interactive_timeout=28800 healthcheck: test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-u", "root", "-p123456"] interval: 30s timeout: 10s retries: 5 start_period: 60s networks: - ljwx-network redis: image: crpi-yilnm6upy4pmbp67.cn-shenzhen.personal.cr.aliyuncs.com/ljwx/ljwx-redis:${REDIS_IMAGE_VERSION:-1.2.16} container_name: ljwx-redis restart: unless-stopped ports: - "6379:6379" volumes: - redis_data:/data - ./logs/redis:/var/log/redis - ./backup/redis:/backup/redis healthcheck: test: ["CMD", "redis-cli", "ping"] interval: 30s timeout: 5s retries: 5 start_period: 30s networks: - ljwx-network ljwx-boot: image: crpi-yilnm6upy4pmbp67.cn-shenzhen.personal.cr.aliyuncs.com/ljwx/ljwx-boot:${LJWX_BOOT_VERSION:-1.3.3} container_name: ljwx-boot restart: unless-stopped env_file: - custom-config.env environment: SPRING_PROFILES_ACTIVE: common MYSQL_HOST: mysql MYSQL_PORT: 3306 MYSQL_USER: root MYSQL_PASSWORD: 123456 MYSQL_DATABASE: lj-06 REDIS_HOST: redis REDIS_PORT: 6379 REDIS_PASSWORD: 123456 TZ: Asia/Shanghai SPRING_DATASOURCE_URL: jdbc:mysql://mysql:3306/lj-06?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai SPRING_DATASOURCE_USERNAME: root SPRING_DATASOURCE_PASSWORD: 123456 SPRING_DATASOURCE_DRIVER_CLASS_NAME: com.mysql.cj.jdbc.Driver SPRING_DATA_REDIS_HOST: redis SPRING_DATA_REDIS_PORT: 6379 SPRING_DATA_REDIS_PASSWORD: 123456 ports: - "9998:9998" volumes: - ./logs/ljwx-boot:/app/ljwx-boot-logs - ljwx_boot_data:/app/data - ./backup/ljwx-boot:/backup/ljwx-boot command: ["sh", "-c", "sleep 30 && java -jar /app/ljwx-boot-admin.jar"] healthcheck: test: ["CMD", "curl", "-f", "http://localhost:9998/actuator/health"] interval: 60s timeout: 10s retries: 3 start_period: 120s networks: - ljwx-network ljwx-bigscreen: image: crpi-yilnm6upy4pmbp67.cn-shenzhen.personal.cr.aliyuncs.com/ljwx/ljwx-bigscreen:${LJWX_BIGSCREEN_VERSION:-1.3.3} container_name: ljwx-bigscreen restart: unless-stopped env_file: - custom-config.env environment: MYSQL_HOST: mysql MYSQL_PORT: 3306 MYSQL_USER: root MYSQL_PASSWORD: 123456 MYSQL_DATABASE: lj-06 REDIS_HOST: redis REDIS_PORT: 6379 REDIS_PASSWORD: 123456 IS_DOCKER: "true" APP_PORT: 8001 TZ: Asia/Shanghai ports: - "8001:8001" volumes: - ./custom-config.py:/app/config.py:ro - ./custom-assets:/app/static/images:ro - ./logs/ljwx-bigscreen:/app/logs - ljwx_bigscreen_data:/app/data - ./backup/ljwx-bigscreen:/backup/ljwx-bigscreen command: ["sh", "-c", "sleep 45 && python app.py"] healthcheck: test: ["CMD", "curl", "-f", "http://localhost:8001/health"] interval: 60s timeout: 10s retries: 3 start_period: 90s networks: - ljwx-network ljwx-admin: image: crpi-yilnm6upy4pmbp67.cn-shenzhen.personal.cr.aliyuncs.com/ljwx/ljwx-admin:${LJWX_ADMIN_VERSION:-1.3.3} container_name: ljwx-admin restart: unless-stopped env_file: - custom-config.env environment: VITE_API_URL: http://ljwx-boot:9998 VITE_BIGSCREEN_URL: http://192.168.1.83:8001 VITE_APP_TITLE: 穿戴健康管理平台 TZ: Asia/Shanghai ports: - "8080:80" volumes: - ./logs/ljwx-admin:/var/log/nginx - ./custom-admin-config.js:/tmp/custom-admin-config.js:ro command: ["sh", "-c", "sleep 60 && nginx -g 'daemon off;'"] healthcheck: test: ["CMD", "curl", "-f", "http://localhost:80/"] interval: 60s timeout: 5s retries: 3 start_period: 60s networks: - ljwx-network volumes: mysql_data: redis_data: ljwx_boot_data: ljwx_bigscreen_data: networks: ljwx-network: driver: bridge