From ad6ea1679a72f186c3b36a50cf5de6d663ec1d63 Mon Sep 17 00:00:00 2001 From: Weves Date: Fri, 27 Oct 2023 15:53:27 -0700 Subject: [PATCH] Sleep for a little before starting nginx --- deployment/docker_compose/docker-compose.dev.yml | 8 ++++++-- .../docker_compose/docker-compose.prod-no-letsencrypt.yml | 8 ++++++-- deployment/docker_compose/docker-compose.prod.yml | 8 ++++++-- 3 files changed, 18 insertions(+), 6 deletions(-) diff --git a/deployment/docker_compose/docker-compose.dev.yml b/deployment/docker_compose/docker-compose.dev.yml index ec1c3669f..3392795ac 100644 --- a/deployment/docker_compose/docker-compose.dev.yml +++ b/deployment/docker_compose/docker-compose.dev.yml @@ -153,9 +153,13 @@ services: - "3000:80" # allow for localhost:3000 usage, since that is the norm volumes: - ../data/nginx:/etc/nginx/conf.d + # sleep a little bit to allow the web_server / api_server to start up. + # Without this we've seen issues where nginx shows no error logs but + # does not recieve any traffic command: > - /bin/sh -c "envsubst '$$\{DOMAIN\}' < /etc/nginx/conf.d/app.conf.template.dev > /etc/nginx/conf.d/app.conf && - while :; do sleep 6h & wait $${!}; nginx -s reload; done & nginx -g \"daemon off;\"" + /bin/sh -c "sleep 10 && + envsubst '$$\{DOMAIN\}' < /etc/nginx/conf.d/app.conf.template.dev > /etc/nginx/conf.d/app.conf && + while :; do sleep 6h & wait $${!}; nginx -s reload; done & nginx -g \"daemon off;\"" volumes: local_dynamic_storage: file_connector_tmp_storage: # used to store files uploaded by the user temporarily while we are indexing them diff --git a/deployment/docker_compose/docker-compose.prod-no-letsencrypt.yml b/deployment/docker_compose/docker-compose.prod-no-letsencrypt.yml index b8ad08de8..9d586b4e7 100644 --- a/deployment/docker_compose/docker-compose.prod-no-letsencrypt.yml +++ b/deployment/docker_compose/docker-compose.prod-no-letsencrypt.yml @@ -92,9 +92,13 @@ services: volumes: - ../data/nginx:/etc/nginx/conf.d - ../data/sslcerts:/etc/nginx/sslcerts + # sleep a little bit to allow the web_server / api_server to start up. + # Without this we've seen issues where nginx shows no error logs but + # does not recieve any traffic command: > - /bin/sh -c "envsubst '$$\{DOMAIN\} $$\{SSL_CERT_FILE_NAME\} $$\{SSL_CERT_KEY_FILE_NAME\}' < /etc/nginx/conf.d/app.conf.template.no-letsencrypt > /etc/nginx/conf.d/app.conf - && while :; do sleep 6h & wait $${!}; nginx -s reload; done & nginx -g \"daemon off;\"" + /bin/sh -c "sleep 10 && + envsubst '$$\{DOMAIN\}' < /etc/nginx/conf.d/app.conf.template.dev > /etc/nginx/conf.d/app.conf && + while :; do sleep 6h & wait $${!}; nginx -s reload; done & nginx -g \"daemon off;\"" env_file: - .env.nginx volumes: diff --git a/deployment/docker_compose/docker-compose.prod.yml b/deployment/docker_compose/docker-compose.prod.yml index 92d02a714..b175fadeb 100644 --- a/deployment/docker_compose/docker-compose.prod.yml +++ b/deployment/docker_compose/docker-compose.prod.yml @@ -93,9 +93,13 @@ services: - ../data/nginx:/etc/nginx/conf.d - ../data/certbot/conf:/etc/letsencrypt - ../data/certbot/www:/var/www/certbot + # sleep a little bit to allow the web_server / api_server to start up. + # Without this we've seen issues where nginx shows no error logs but + # does not recieve any traffic command: > - /bin/sh -c "envsubst '$$\{DOMAIN\}' < /etc/nginx/conf.d/app.conf.template > /etc/nginx/conf.d/app.conf - && while :; do sleep 6h & wait $${!}; nginx -s reload; done & nginx -g \"daemon off;\"" + /bin/sh -c "sleep 10 && + envsubst '$$\{DOMAIN\}' < /etc/nginx/conf.d/app.conf.template.dev > /etc/nginx/conf.d/app.conf && + while :; do sleep 6h & wait $${!}; nginx -s reload; done & nginx -g \"daemon off;\"" env_file: - .env.nginx # follows https://pentacent.medium.com/nginx-and-lets-encrypt-with-docker-in-less-than-5-minutes-b4b8a60d3a71