version: '3.8' services: # ======================= # MySQL 数据库 # ======================= mysql: image: mysql:8.2 container_name: mysql_container restart: always environment: MYSQL_ROOT_PASSWORD: your_root_password MYSQL_DATABASE: your_database MYSQL_USER: your_user MYSQL_PASSWORD: your_password network_mode: host volumes: - mysql_data:/var/lib/mysql # ======================= # Redis 缓存 # ======================= redis: image: redis:7.2 container_name: redis_container restart: always network_mode: host volumes: - redis_data:/data # ======================= # MinIO 对象存储 # ======================= minio: image: minio/minio:latest container_name: minio_container restart: always environment: MINIO_ROOT_USER: minioadmin MINIO_ROOT_PASSWORD: minioadmin command: server /data --console-address ":9001" network_mode: host volumes: - minio_data:/data # ======================= # MinIO 初始化 # ======================= minio-init: image: minio/mc:latest container_name: minio_init_container depends_on: - minio network_mode: host entrypoint: > /bin/sh -c " sleep 5 && mc alias set local http://127.0.0.1:9000 minioadmin minioadmin && mc mb local/my-bucket || echo 'bucket exists' && mc policy set public local/my-bucket " restart: "no" # ======================= # Nginx 网关 # ======================= nginx: image: nginx:latest container_name: nginx_container restart: always network_mode: host volumes: - ./nginx/conf.d:/etc/nginx/conf.d:ro - ./html:/usr/share/nginx/html:ro depends_on: - mysql - redis - minio - minio-init # ======================= # 数据卷 # ======================= volumes: mysql_data: redis_data: minio_data: