Files
henan-backend/docker/compose/docker-compose.yml
T
2026-09-21 19:21:35 +08:00

90 lines
2.3 KiB
YAML

services:
# MySQL 8.0.24 服务
mysql:
build:
context: ../config/mysql
dockerfile: Dockerfile
args:
MYSQL_BASE_IMAGE: mysql:8.0.24
MYSQL_CONF: my.cnf.16c32g
container_name: mysql_db
restart: unless-stopped
environment:
TZ: Asia/Shanghai
MYSQL_ROOT_PASSWORD: 123456
MYSQL_DATABASE: changzhou
MYSQL_USER: changzhou
MYSQL_PASSWORD: iTSJSPPZM3LSGAPC
ports:
- "127.0.0.1:23306:3306"
volumes:
- mysql_data:/var/lib/mysql
logging:
driver: json-file
options:
max-size: "50m"
max-file: "3"
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-uroot", "-p123456"]
interval: 10s
timeout: 5s
retries: 5
start_period: 30s
networks:
- changzhou_app_network
# Redis 服务
redis:
image: redis:latest
container_name: redis_cache
restart: unless-stopped
command: redis-server /usr/local/etc/redis/redis.conf
ports:
- "127.0.0.1:26379:6379"
logging:
driver: json-file
options:
max-size: "50m"
max-file: "3"
networks:
- changzhou_app_network
# RabbitMQ 3.9 服务
rabbitmq:
image: rabbitmq:3.9-management
container_name: rabbitmq_server
restart: unless-stopped
environment:
RABBITMQ_DEFAULT_USER: skins
RABBITMQ_DEFAULT_PASS: mk
ports:
- "127.0.0.1:25672:5672"
- "127.0.0.1:35672:15672"
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"
logging:
driver: json-file
options:
max-size: "50m"
max-file: "3"
networks:
- changzhou_app_network
# 定义数据卷(external 固定卷名,不随目录变化,防止换目录丢数据)
volumes:
mysql_data:
external: true
name: changzhou_mysql_data
# 定义网络
networks:
changzhou_app_network:
driver: bridge