You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

73 lines
1.8 KiB

# ============================================
# A股智投分析平台 - 仅数据库服务(宿主机调试模式)
# ============================================
# 使用场景: 前后端运行在宿主机,数据库使用 Docker
#
# 启动命令:
# cd app/backend
# docker-compose -f docker-compose.db-only.yml up -d
#
# 停止命令:
# docker-compose -f docker-compose.db-only.yml down
# ============================================
version: '3.8'
services:
# MySQL 8.0 数据库
mysql:
image: mysql:8.0
container_name: aguzhitou-mysql-local
environment:
MYSQL_ROOT_PASSWORD: 1qazse42W3
MYSQL_DATABASE: aguzhitou
MYSQL_CHARSET: utf8mb4
MYSQL_COLLATION: utf8mb4_unicode_ci
TZ: Asia/Shanghai
volumes:
- mysql_local_data:/var/lib/mysql
- ./init-scripts:/docker-entrypoint-initdb.d:ro
ports:
- "3306:3306"
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-u", "root", "-p1qazse42W3"]
interval: 10s
timeout: 5s
retries: 5
start_period: 30s
restart: always
networks:
- aguzhitou-local-network
command: >
--default-authentication-plugin=mysql_native_password
--character-set-server=utf8mb4
--collation-server=utf8mb4_unicode_ci
--innodb_buffer_pool_size=256M
# Redis 7 缓存
redis:
image: redis:7-alpine
container_name: aguzhitou-redis-local
volumes:
- redis_local_data:/data
ports:
- "6379:6379"
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 10s
timeout: 5s
retries: 5
restart: always
networks:
- aguzhitou-local-network
volumes:
mysql_local_data:
driver: local
redis_local_data:
driver: local
networks:
aguzhitou-local-network:
driver: bridge