version: '2.1'
services:
db:
container_name: db
image: postgres:15.4
environment:
POSTGRES_PASSWORD: root
POSTGRES_USER: root
expose:
- 5432
ports:
- "5432:5432"
restart: unless-stopped
volumes:
- ./init-db.sh:/docker-entrypoint-initdb.d/init-db.sh
- ./postgres-data:/var/lib/postgresql/data
- ./custom.conf:/etc/postgresql/postgresql.conf
command: postgres -c config_file=/etc/postgresql/postgresql.conf
healthcheck:
test: ["CMD-SHELL", "psql -h 'localhost' -U 'root' -c '\\l'"]
interval: 1s
timeout: 3s
retries: 30
listen_addresses = '*'
shared_buffers = 1GB
effective_cache_size = 2GB
work_mem = 16MB
wal_buffers = -1
max_wal_size = 1GB
使用docker自定义数据库配置文件的时候,需要指定listen_addresses,
要不然从宿主机telnet失败:telnet ip 5432