services: # MySQL 8.0.24 服务 mysql: build: context: . dockerfile: Dockerfile container_name: mysql_db restart: unless-stopped environment: MYSQL_ROOT_PASSWORD: 123456 # 设置 root 密码 MYSQL_DATABASE: fire # 可选:自动创建名为 c9_fire 的数据库 MYSQL_USER: fire # 可选:创建新用户 MYSQL_PASSWORD: iTSJSPPZM3LSGAPC # 可选:新用户密码 ports: - "3306:3306" volumes: - mysql_data:/var/lib/mysql # 挂载数据卷以持久化数据 networks: - app_network # Redis 服务 redis: image: m.daocloud.io/docker.io/redis:latest container_name: redis_cache restart: unless-stopped command: redis-server --requirepass FireSkins@99999 ports: - "6379:6379" networks: - app_network # RabbitMQ 3.9 服务 rabbitmq: image: m.daocloud.io/docker.io/rabbitmq:3.9-management container_name: rabbitmq_server restart: unless-stopped environment: RABBITMQ_DEFAULT_USER: skins # 设置管理界面用户名 RABBITMQ_DEFAULT_PASS: mk # 设置管理界面密码 ports: - "5672:5672" # 应用连接端口 - "15672:15672" # 管理界面 Web 端口 command: > bash -c "rabbitmq-server & sleep 20 && rabbitmqctl add_vhost /skins && rabbitmqctl set_permissions -p /skins skins '.*' '.*' '.*' && rabbitmqadmin --vhost=/skins --username=skins --password=mk declare queue name=notice_queue durable=true && rabbitmqadmin --vhost=/skins --username=skins --password=mk declare queue name=dlk_queue durable=true && rabbitmqadmin --vhost=/skins --username=skins --password=mk declare queue name=delivery_queue durable=true && wait" networks: - app_network # 定义数据卷 volumes: mysql_data: # 定义网络 networks: app_network: driver: bridge