version: '3.8' services: # MySQL数据库 mysql: image: mysql:8.0 container_name: ecloud_mysql environment: MYSQL_ROOT_PASSWORD: password123 MYSQL_DATABASE: ecloud_dify MYSQL_USER: ecloud MYSQL_PASSWORD: ecloud123 ports: - "3306:3306" volumes: - mysql_data:/var/lib/mysql - ./init.sql:/docker-entrypoint-initdb.d/init.sql restart: unless-stopped command: --default-authentication-plugin=mysql_native_password # Redis缓存 redis: image: redis:7-alpine container_name: ecloud_redis ports: - "6379:6379" volumes: - redis_data:/data restart: unless-stopped command: redis-server --appendonly yes # 应用服务 app: build: . container_name: ecloud_app ports: - "8000:8000" environment: - DATABASE_URL=mysql+pymysql://ecloud:ecloud123@mysql:3306/ecloud_dify - REDIS_URL=redis://redis:6379/0 volumes: - ./logs:/app/logs - ./.env:/app/.env depends_on: - mysql - redis restart: unless-stopped volumes: mysql_data: redis_data: