Просмотр исходного кода

Merge pull request #165 from cschug/improve_compose_postgres

Improve Docker Compose file of PostgreSQL
Christian Lempa 2 лет назад
Родитель
Сommit
72bed1c361
2 измененных файлов с 36 добавлено и 14 удалено
  1. 1 0
      docker-compose/postgres/.gitignore
  2. 35 14
      docker-compose/postgres/docker-compose.yaml

+ 1 - 0
docker-compose/postgres/.gitignore

@@ -0,0 +1 @@
+secret.*

+ 35 - 14
docker-compose/postgres/docker-compose.yaml

@@ -1,24 +1,45 @@
 ---
 ---
-# (Optional) when using custom network
-# networks:
-#   yournetwork:
-#     external: true
-volumes:
-  postgres-data:
 services:
 services:
   postgres:
   postgres:
-    # (Recommended) replace "latest" with specific version
-    image: postgres:latest
+    image: postgres:16.2
+    container_name: postgres
     environment:
     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:
     ports:
       - 5432:5432
       - 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:
     # networks:
     #   - yournetwork
     #   - yournetwork
+    secrets:
+      - postgres_password
     volumes:
     volumes:
-      - postgres-data:/var/lib/postgresql/data
+      - postgres_data:/var/lib/postgresql/data
     restart: unless-stopped
     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