|
|
@@ -1,24 +1,45 @@
|
|
|
---
|
|
|
-# (Optional) when using custom network
|
|
|
-# networks:
|
|
|
-# yournetwork:
|
|
|
-# external: true
|
|
|
-volumes:
|
|
|
- postgres-data:
|
|
|
services:
|
|
|
postgres:
|
|
|
- # (Recommended) replace "latest" with specific version
|
|
|
- image: postgres:latest
|
|
|
+ image: postgres:16.2
|
|
|
+ container_name: postgres
|
|
|
environment:
|
|
|
- - POSTGRES_USER=${POSTGRES_USER}
|
|
|
- - POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
|
|
|
- # (Optional) when creating a new database
|
|
|
- # - POSTGRES_DB=${POSTGRES_DB}
|
|
|
+ - POSTGRES_INITDB_ARGS=${POSTGRES_INITDB_ARGS---data-checksums}
|
|
|
+ - POSTGRES_HOST_AUTH_METHOD=${POSTGRES_HOST_AUTH_METHOD-}
|
|
|
+ - POSTGRES_USER=${POSTGRES_USER:-postgres}
|
|
|
+ - POSTGRES_PASSWORD_FILE=/run/secrets/postgres_password
|
|
|
+ - POSTGRES_DB=${POSTGRES_DB:-$POSTGRES_USER}
|
|
|
+ - TZ=${TZ:-UTC}
|
|
|
ports:
|
|
|
- 5432:5432
|
|
|
- # (Optional) when using custom network
|
|
|
+ healthcheck:
|
|
|
+ test: ['CMD-SHELL', 'pg_isready -U "${POSTGRES_USER:-postgres}"']
|
|
|
+ start_period: 30s
|
|
|
+ interval: 10s
|
|
|
+ timeout: 10s
|
|
|
+ retries: 5
|
|
|
+ # (Optional) When using custom network, see also
|
|
|
+ # https://docs.docker.com/compose/compose-file/compose-file-v3/#networks
|
|
|
+ #
|
|
|
# networks:
|
|
|
# - yournetwork
|
|
|
+ secrets:
|
|
|
+ - postgres_password
|
|
|
volumes:
|
|
|
- - postgres-data:/var/lib/postgresql/data
|
|
|
+ - postgres_data:/var/lib/postgresql/data
|
|
|
restart: unless-stopped
|
|
|
+
|
|
|
+# (Optional) When using custom network, see also
|
|
|
+# https://docs.docker.com/compose/compose-file/compose-file-v3/#network-configuration-reference
|
|
|
+#
|
|
|
+# networks:
|
|
|
+# yournetwork:
|
|
|
+# external: true
|
|
|
+
|
|
|
+secrets:
|
|
|
+ postgres_password:
|
|
|
+ file: secret.postgres_password.txt
|
|
|
+
|
|
|
+volumes:
|
|
|
+ postgres_data:
|
|
|
+ driver: local
|