From fb29db7aad01ab9f3a43d7ad2466082f7191195c Mon Sep 17 00:00:00 2001 From: MaxJa4 <74194322+MaxJa4@users.noreply.github.com> Date: Sun, 30 Jan 2022 01:19:50 +0100 Subject: [PATCH 1/4] Web container waits for DB container to be ready Fixes the setup issue almost all Raspberry Pi users have and probably some others with slow or low spec systems. The web_recipes container waits for db_recipes to be healthy. db_recipes is healthy, as soon as postgres is completely ready. Note: ps_isready doesn't work here for some reason. Tested multiple times with a Raspberry Pi 4. --- docs/install/docker/plain/docker-compose.yml | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/docs/install/docker/plain/docker-compose.yml b/docs/install/docker/plain/docker-compose.yml index 845ee77c..26278011 100644 --- a/docs/install/docker/plain/docker-compose.yml +++ b/docs/install/docker/plain/docker-compose.yml @@ -7,6 +7,11 @@ services: - ./postgresql:/var/lib/postgresql/data env_file: - ./.env + healthcheck: + test: ["CMD-SHELL", "psql -U $$POSTGRES_USER -d $$POSTGRES_DB --list || exit 1"] + interval: 5s + timeout: 2s + retries: 5 web_recipes: image: vabene1111/recipes @@ -18,7 +23,8 @@ services: - nginx_config:/opt/recipes/nginx/conf.d - ./mediafiles:/opt/recipes/mediafiles depends_on: - - db_recipes + db_recipes: + condition: service_healthy nginx_recipes: image: nginx:mainline-alpine @@ -36,4 +42,4 @@ services: volumes: nginx_config: - staticfiles: \ No newline at end of file + staticfiles: From d7d37f9908886b94e156db25728992f2724ee31f Mon Sep 17 00:00:00 2001 From: MaxJa4 <74194322+MaxJa4@users.noreply.github.com> Date: Sun, 30 Jan 2022 01:20:33 +0100 Subject: [PATCH 2/4] Update docker-compose.yml --- docs/install/docker/nginx-proxy/docker-compose.yml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/docs/install/docker/nginx-proxy/docker-compose.yml b/docs/install/docker/nginx-proxy/docker-compose.yml index 077e57ab..aa7d31fb 100644 --- a/docs/install/docker/nginx-proxy/docker-compose.yml +++ b/docs/install/docker/nginx-proxy/docker-compose.yml @@ -9,6 +9,11 @@ services: - ./.env networks: - default + healthcheck: + test: ["CMD-SHELL", "psql -U $$POSTGRES_USER -d $$POSTGRES_DB --list || exit 1"] + interval: 5s + timeout: 2s + retries: 5 web_recipes: image: vabene1111/recipes @@ -20,7 +25,8 @@ services: - nginx_config:/opt/recipes/nginx/conf.d - ./mediafiles:/opt/recipes/mediafiles depends_on: - - db_recipes + db_recipes: + condition: service_healthy networks: - default From 6330d15ebeaae2a897a15a99444bc7aa90bbea83 Mon Sep 17 00:00:00 2001 From: MaxJa4 <74194322+MaxJa4@users.noreply.github.com> Date: Sun, 30 Jan 2022 01:20:54 +0100 Subject: [PATCH 3/4] Update docker-compose.yml --- docs/install/docker/traefik-nginx/docker-compose.yml | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/docs/install/docker/traefik-nginx/docker-compose.yml b/docs/install/docker/traefik-nginx/docker-compose.yml index 3e94ce2f..3eb4f99a 100644 --- a/docs/install/docker/traefik-nginx/docker-compose.yml +++ b/docs/install/docker/traefik-nginx/docker-compose.yml @@ -9,6 +9,11 @@ services: - ./.env networks: - default + healthcheck: + test: ["CMD-SHELL", "psql -U $$POSTGRES_USER -d $$POSTGRES_DB --list || exit 1"] + interval: 5s + timeout: 2s + retries: 5 web_recipes: image: vabene1111/recipes @@ -20,7 +25,8 @@ services: - nginx_config:/opt/recipes/nginx/conf.d - ./mediafiles:/opt/recipes/mediafiles depends_on: - - db_recipes + db_recipes: + condition: service_healthy networks: - default @@ -51,4 +57,4 @@ networks: volumes: nginx_config: - staticfiles: \ No newline at end of file + staticfiles: From 419821733c63070094cecfa6643971cfd95f4170 Mon Sep 17 00:00:00 2001 From: MaxJa4 <74194322+MaxJa4@users.noreply.github.com> Date: Mon, 31 Jan 2022 14:27:39 +0100 Subject: [PATCH 4/4] Optimized healthcheck timings 1s faster interval (to increase retry speed on faster systems), 1s shorter timeout (since it db should react in a lot less than 1s), increased retries to 12 total so all adds up to 60s of potential retry-time for older systems (e.g. RPI 3) --- docs/install/docker/nginx-proxy/docker-compose.yml | 6 +++--- docs/install/docker/plain/docker-compose.yml | 6 +++--- docs/install/docker/traefik-nginx/docker-compose.yml | 6 +++--- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/docs/install/docker/nginx-proxy/docker-compose.yml b/docs/install/docker/nginx-proxy/docker-compose.yml index aa7d31fb..659b5bd5 100644 --- a/docs/install/docker/nginx-proxy/docker-compose.yml +++ b/docs/install/docker/nginx-proxy/docker-compose.yml @@ -11,9 +11,9 @@ services: - default healthcheck: test: ["CMD-SHELL", "psql -U $$POSTGRES_USER -d $$POSTGRES_DB --list || exit 1"] - interval: 5s - timeout: 2s - retries: 5 + interval: 4s + timeout: 1s + retries: 12 web_recipes: image: vabene1111/recipes diff --git a/docs/install/docker/plain/docker-compose.yml b/docs/install/docker/plain/docker-compose.yml index 26278011..1cd8fb1b 100644 --- a/docs/install/docker/plain/docker-compose.yml +++ b/docs/install/docker/plain/docker-compose.yml @@ -9,9 +9,9 @@ services: - ./.env healthcheck: test: ["CMD-SHELL", "psql -U $$POSTGRES_USER -d $$POSTGRES_DB --list || exit 1"] - interval: 5s - timeout: 2s - retries: 5 + interval: 4s + timeout: 1s + retries: 12 web_recipes: image: vabene1111/recipes diff --git a/docs/install/docker/traefik-nginx/docker-compose.yml b/docs/install/docker/traefik-nginx/docker-compose.yml index 3eb4f99a..c68a25c9 100644 --- a/docs/install/docker/traefik-nginx/docker-compose.yml +++ b/docs/install/docker/traefik-nginx/docker-compose.yml @@ -11,9 +11,9 @@ services: - default healthcheck: test: ["CMD-SHELL", "psql -U $$POSTGRES_USER -d $$POSTGRES_DB --list || exit 1"] - interval: 5s - timeout: 2s - retries: 5 + interval: 4s + timeout: 1s + retries: 12 web_recipes: image: vabene1111/recipes