Browse Source

feat: add health check and depend condition in docker compose (#1113)

李锐东 1 year ago
parent
commit
d9866489f0
1 changed files with 19 additions and 6 deletions
  1. 19 6
      docker/docker-compose.yaml

+ 19 - 6
docker/docker-compose.yaml

@@ -114,9 +114,12 @@ services:
       # The sample rate for Sentry profiles. Default: `1.0`
       SENTRY_PROFILES_SAMPLE_RATE: 1.0
     depends_on:
-      - db
-      - redis
-      - weaviate
+      db:
+        condition: service_healthy
+      redis:
+        condition: service_healthy
+      weaviate:
+        condition: service_started
     volumes:
       # Mount the storage directory to the container, for storing user files.
       - ./volumes/app/storage:/app/api/storage
@@ -167,9 +170,12 @@ services:
       # the api-key for resend (https://resend.com)
       RESEND_API_KEY: ''
     depends_on:
-      - db
-      - redis
-      - weaviate
+      db:
+        condition: service_healthy
+      redis:
+        condition: service_healthy
+      weaviate:
+        condition: service_started
     volumes:
       # Mount the storage directory to the container, for storing user files.
       - ./volumes/app/storage:/app/api/storage
@@ -206,6 +212,11 @@ services:
       - ./volumes/db/data:/var/lib/postgresql/data
     ports:
       - "5432:5432"
+    healthcheck:
+      test: ["CMD", "pg_isready"]
+      interval: 1s
+      timeout: 3s
+      retries: 30
 
   # The redis cache.
   redis:
@@ -216,6 +227,8 @@ services:
       - ./volumes/redis/data:/data
     # Set the redis password when startup redis server.
     command: redis-server --requirepass difyai123456
+    healthcheck:
+      test: ["CMD", "redis-cli","ping"]
 
   # The Weaviate vector store.
   weaviate: