Files
doodle-store/deploy/compose.database.yaml
2026-10-19 17:48:57 +08:00

57 lines
1.7 KiB
YAML

name: doodle-prod
services:
postgres:
image: postgres:18.6-alpine
container_name: doodle-postgres
restart: unless-stopped
environment:
POSTGRES_USER: postgres
POSTGRES_DB: postgres
POSTGRES_PASSWORD: ${POSTGRES_ADMIN_PASSWORD:?请配置独立的数据库管理密码}
DOODLE_MIGRATOR_PASSWORD: ${DOODLE_MIGRATOR_PASSWORD:?请配置迁移账号密码}
DOODLE_APP_PASSWORD: ${DOODLE_APP_PASSWORD:?请配置应用账号密码}
POSTGRES_INITDB_ARGS: '--encoding=UTF8 --locale=C --auth-host=scram-sha-256'
TZ: UTC
PGTZ: UTC
command:
- postgres
- -c
- timezone=UTC
- -c
- max_connections=50
- -c
- shared_buffers=128MB
- -c
- work_mem=4MB
# PostgreSQL 18 持久化父目录;不发布宿主机端口。
volumes:
- postgres-data:/var/lib/postgresql
- ./postgres/10-create-roles.sh:/docker-entrypoint-initdb.d/10-create-roles.sh:ro
networks:
- database
mem_limit: 512m
cpus: 1.0
pids_limit: 128
shm_size: 128m
healthcheck:
test: ['CMD-SHELL', 'pg_isready -U postgres -d doodle_prod']
interval: 10s
timeout: 5s
retries: 12
start_period: 15s
logging:
driver: json-file
options:
max-size: '10m'
max-file: '3'
volumes:
postgres-data:
name: doodle-prod-postgres-data
networks:
database:
name: doodle-prod-db
internal: true