38 lines
1.4 KiB
YAML
38 lines
1.4 KiB
YAML
# 本地开发依赖的外部组件。只起 MySQL——应用本身用 ./gradlew :bootstrap:bootRun 在 IDE/命令行里跑,
|
||||
|
|
# 这样断点和热重载都还在。
|
|||
|
|
#
|
|||
|
|
# docker compose up -d mysql
|
|||
|
|
# SPRING_PROFILES_ACTIVE=local ./gradlew :bootstrap:bootRun
|
|||
|
|
#
|
|||
|
|
# 这里的账号密码跟 application-local.yml 对齐,都是假值,不是任何环境的真实凭证。
|
|||
|
|
|
|||
|
|
services:
|
|||
|
|
mysql:
|
|||
|
|
image: mysql:8.4
|
|||
|
|
container_name: conti-mysql
|
|||
|
|
ports:
|
|||
|
|
- "3306:3306"
|
|||
|
|
environment:
|
|||
|
|
MYSQL_ROOT_PASSWORD: root_local_password
|
|||
|
|
MYSQL_USER: conti
|
|||
|
|
MYSQL_PASSWORD: conti_local_password
|
|||
|
|
command:
|
|||
|
|
# 字符集跟 UAT/Prod 的 Azure Flexible Server 对齐:8.0 之后的默认排序规则是
|
|||
|
|
# utf8mb4_0900_ai_ci,本地用别的会出现"本地大小写敏感、线上不敏感"这类差异。
|
|||
|
|
- --character-set-server=utf8mb4
|
|||
|
|
- --collation-server=utf8mb4_0900_ai_ci
|
|||
|
|
# 应用侧全用 UTC Instant 存取(见 03-persistence.md),服务端时区也钉成 UTC
|
|||
|
|
- --default-time-zone=+00:00
|
|||
|
|
volumes:
|
|||
|
|
- conti-mysql-data:/var/lib/mysql
|
|||
|
|
# 一个 domain 一个 database,Flyway 起来之前这几个库得先存在(见 DomainFlywayConfig)
|
|||
|
|
- ./docker/mysql/init:/docker-entrypoint-initdb.d:ro
|
|||
|
|
healthcheck:
|
|||
|
|
test: ["CMD", "mysqladmin", "ping", "-h", "127.0.0.1", "-uroot", "-proot_local_password"]
|
|||
|
|
interval: 5s
|
|||
|
|
timeout: 3s
|
|||
|
|
retries: 20
|
|||
|
|
|
|||
|
|
volumes:
|
|||
|
|
conti-mysql-data:
|