version: '3.9' services: postgresql_primary: image: postgres:16 environment: POSTGRES_PASSWORD_FILE: /run/secrets/pg_root_password secrets: - pg_root_password volumes: - pg_data:/var/lib/postgresql/data networks: - database-network deploy: placement: constraints: - "node.labels.role==db" replicas: 1 volumes: pg_data: driver: local secrets: pg_root_password: external: true networks: database-network: external: true