PayrollManagementSystem/docker/docker-compose.dev.yml
liuwenxin 5e5304eece fix(连接): 默认校验 T+ 证书并限制开发端口
T+ 连接默认校验服务器证书,隔离开发回退须显式配置。
MySQL 与 Redis 的开发端口仅绑定本机回环地址。
2026-11-03 17:18:43 +08:00

58 lines
1.9 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 开发环境容器编排
# 启动(在项目根目录执行;Compose 会自动加载同目录的 docker/.env):
# docker compose -f docker/docker-compose.dev.yml up -d
#
# name 显式指定 Compose 项目名。不指定时会取 compose 文件所在目录名(即 docker),
# 导致网络/卷被命名为 docker_default、docker_mysql-dev-data 这类无意义名称。
name: ys-payroll
services:
mysql:
image: mysql:8.0
container_name: ys-mysql-dev
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
MYSQL_DATABASE: ${MYSQL_DATABASE}
# 应用连接用专用账号,避免后端以 root 身份连库
MYSQL_USER: ${MYSQL_USER}
MYSQL_PASSWORD: ${MYSQL_PASSWORD}
TZ: Asia/Shanghai
command: --character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci
volumes:
- mysql-dev-data:/var/lib/mysql
# 首次启动自动执行 db/init 下的初始化脚本
- ../db/init:/docker-entrypoint-initdb.d
ports:
- "127.0.0.1:3306:3306"
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-uroot", "-p${MYSQL_ROOT_PASSWORD}"]
interval: 10s
timeout: 5s
retries: 10
start_period: 30s
redis:
image: redis:7-alpine
container_name: ys-redis-dev
restart: unless-stopped
environment:
TZ: Asia/Shanghai
# 健康检查脚本在容器内展开(密码不进宿主进程命令行,模式同 mysql)
REDIS_PASSWORD: ${REDIS_PASSWORD}
# appendonly 开启 AOF,容器重启后验证码黑名单等数据不丢
command: redis-server --appendonly yes --requirepass ${REDIS_PASSWORD}
volumes:
- redis-dev-data:/data
ports:
- "127.0.0.1:6379:6379"
healthcheck:
test: ["CMD", "redis-cli", "-a", "${REDIS_PASSWORD}", "--no-auth-warning", "ping"]
interval: 10s
timeout: 5s
retries: 10
volumes:
mysql-dev-data:
redis-dev-data: