version: "3.9"
services:
db:
image: postgres:13-alpine
deploy:
placement:
constraints:
- node.role==manager
max_replicas_per_node: 1
environment:
TZ: Asia/Seoul
POSTGRES_USER: postgres
POSTGRES_PASSWORD_FILE: /run/secrets/db_password
healthcheck:
test: ["CMD", "pg_isready", "-U", "postgres"]
networks:
- backend
ports:
- "5432:5432"
restart: unless-stopped
secrets:
- db_password
volumes:
- ./db/initdb.d:/docker-entrypoint-initdb.d:ro
- db_data:/var/lib/postgresql/data
networks:
backend:
secrets:
db_password:
file: ./db/password.txt
volumes:
db_data: