154 lines
4.1 KiB
YAML
154 lines
4.1 KiB
YAML
services:
|
|
mysql:
|
|
image: mysql:8.0
|
|
container_name: chatapp-test-mysql
|
|
restart: unless-stopped
|
|
command:
|
|
- --character-set-server=utf8mb4
|
|
- --collation-server=utf8mb4_unicode_ci
|
|
- --default-time-zone=+08:00
|
|
- --max_connections=300
|
|
- --innodb_buffer_pool_size=2G
|
|
environment:
|
|
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
|
|
MYSQL_DATABASE: ${MYSQL_DATABASE}
|
|
MYSQL_USER: ${MYSQL_USER}
|
|
MYSQL_PASSWORD: ${MYSQL_PASSWORD}
|
|
TZ: Asia/Shanghai
|
|
ports:
|
|
- "127.0.0.1:3306:3306"
|
|
volumes:
|
|
- mysql-data:/var/lib/mysql
|
|
- ./mysql/init:/docker-entrypoint-initdb.d:ro
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "mysqladmin ping -h 127.0.0.1 -uroot -p$${MYSQL_ROOT_PASSWORD} --silent"]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 30
|
|
|
|
redis:
|
|
image: redis:7.2-alpine
|
|
container_name: chatapp-test-redis
|
|
restart: unless-stopped
|
|
command: >
|
|
sh -lc 'if [ -n "$$REDIS_PASSWORD" ]; then
|
|
exec redis-server --appendonly yes --requirepass "$$REDIS_PASSWORD";
|
|
else exec redis-server --appendonly yes; fi'
|
|
environment:
|
|
REDIS_PASSWORD: ${REDIS_PASSWORD}
|
|
TZ: Asia/Shanghai
|
|
ports:
|
|
- "127.0.0.1:6379:6379"
|
|
volumes:
|
|
- redis-data:/data
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "redis-cli ping | grep -q PONG"]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 30
|
|
|
|
mongo:
|
|
image: mongo:7.0
|
|
container_name: chatapp-test-mongo
|
|
restart: unless-stopped
|
|
environment:
|
|
TZ: Asia/Shanghai
|
|
ports:
|
|
- "127.0.0.1:27017:27017"
|
|
volumes:
|
|
- mongo-data:/data/db
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "mongosh --quiet --eval 'db.runCommand({ ping: 1 }).ok' | grep -q 1"]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 30
|
|
|
|
nacos:
|
|
image: nacos/nacos-server:v2.3.2
|
|
container_name: chatapp-test-nacos
|
|
restart: unless-stopped
|
|
environment:
|
|
MODE: standalone
|
|
PREFER_HOST_MODE: hostname
|
|
NACOS_AUTH_ENABLE: "false"
|
|
JVM_XMS: 512m
|
|
JVM_XMX: 512m
|
|
JVM_XMN: 256m
|
|
TZ: Asia/Shanghai
|
|
ports:
|
|
- "127.0.0.1:8848:8848"
|
|
- "127.0.0.1:9848:9848"
|
|
volumes:
|
|
- nacos-data:/home/nacos/data
|
|
- nacos-logs:/home/nacos/logs
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "curl -fsS http://127.0.0.1:8848/nacos/v1/console/health/readiness | grep -Eq '^(UP|OK)$'"]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 60
|
|
|
|
rocketmq-namesrv:
|
|
image: apache/rocketmq:5.3.1
|
|
container_name: chatapp-test-rocketmq-namesrv
|
|
user: root
|
|
restart: unless-stopped
|
|
command: sh mqnamesrv
|
|
environment:
|
|
JAVA_OPT_EXT: "-Xms256m -Xmx256m -Xmn128m"
|
|
TZ: Asia/Shanghai
|
|
ports:
|
|
- "127.0.0.1:9876:9876"
|
|
volumes:
|
|
- rocketmq-namesrv-logs:/home/rocketmq/logs
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "bash -lc '</dev/tcp/127.0.0.1/9876'"]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 30
|
|
|
|
rocketmq-broker:
|
|
image: apache/rocketmq:5.3.1
|
|
container_name: chatapp-test-rocketmq-broker
|
|
user: root
|
|
restart: unless-stopped
|
|
depends_on:
|
|
rocketmq-namesrv:
|
|
condition: service_started
|
|
command: sh mqbroker -n rocketmq-namesrv:9876 -c /home/rocketmq/conf/broker.conf
|
|
environment:
|
|
JAVA_OPT_EXT: "-Xms512m -Xmx512m -Xmn256m"
|
|
TZ: Asia/Shanghai
|
|
ports:
|
|
- "127.0.0.1:10909:10909"
|
|
- "127.0.0.1:10911:10911"
|
|
volumes:
|
|
- ./config/rocketmq/broker.conf:/home/rocketmq/conf/broker.conf:ro
|
|
- rocketmq-broker-store:/home/rocketmq/store
|
|
- rocketmq-broker-logs:/home/rocketmq/logs
|
|
|
|
rocketmq-proxy:
|
|
image: apache/rocketmq:5.3.1
|
|
container_name: chatapp-test-rocketmq-proxy
|
|
user: root
|
|
restart: unless-stopped
|
|
depends_on:
|
|
rocketmq-broker:
|
|
condition: service_started
|
|
command: sh mqproxy -n rocketmq-namesrv:9876
|
|
environment:
|
|
JAVA_OPT_EXT: "-Xms256m -Xmx256m -Xmn128m"
|
|
TZ: Asia/Shanghai
|
|
ports:
|
|
- "127.0.0.1:8081:8081"
|
|
- "127.0.0.1:8082:8080"
|
|
|
|
volumes:
|
|
mysql-data:
|
|
redis-data:
|
|
mongo-data:
|
|
nacos-data:
|
|
nacos-logs:
|
|
rocketmq-namesrv-logs:
|
|
rocketmq-broker-store:
|
|
rocketmq-broker-logs:
|