version: '3.8' services: ytb2bili: build: . # 或使用预构建镜像: # image: difyz9/ytb2bili:latest container_name: ytb2bili-app ports: - "8096:8096" environment: - CONFIG_FILE=/app/config.toml - TZ=Asia/Shanghai volumes: - ./config.toml:/app/config.toml:ro - ytb2bili_data:/data/ytb2bili - ytb2bili_logs:/app/logs depends_on: - mysql restart: unless-stopped networks: - ytb2bili-network mysql: image: mysql:8.0 container_name: ytb2bili-mysql environment: MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD:-ytb2bili_root_2024} MYSQL_DATABASE: ${MYSQL_DATABASE:-ytb2bili} MYSQL_USER: ${MYSQL_USER:-ytb2bili} MYSQL_PASSWORD: ${MYSQL_PASSWORD:-ytb2bili_2024} volumes: - mysql_data:/var/lib/mysql - ./init.sql:/docker-entrypoint-initdb.d/init.sql:ro ports: - "3306:3306" restart: unless-stopped command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci networks: - ytb2bili-network # 可选: Redis 缓存 redis: image: redis:7-alpine container_name: ytb2bili-redis ports: - "6379:6379" volumes: - redis_data:/data restart: unless-stopped networks: - ytb2bili-network # 可选: Nginx 反向代理 nginx: image: nginx:alpine container_name: ytb2bili-nginx ports: - "80:80" - "443:443" volumes: - ./nginx.conf:/etc/nginx/nginx.conf:ro - ./ssl:/etc/ssl/certs:ro depends_on: - ytb2bili restart: unless-stopped networks: - ytb2bili-network volumes: ytb2bili_data: driver: local ytb2bili_logs: driver: local mysql_data: driver: local redis_data: driver: local networks: ytb2bili-network: driver: bridge