diff --git a/docker-compose.yml b/docker-compose.yml index 55b65945..8c6d5f1a 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -3,6 +3,9 @@ version: '3' services: db: + healthcheck: + test: ["CMD-SHELL", "pg_isready -U postgres"] + interval: 2s image: postgis/postgis:14-3.3-alpine environment: - POSTGRES_HOST_AUTH_METHOD=trust @@ -10,6 +13,9 @@ services: - db:/var/lib/postgresql/data app: + depends_on: + db: + condition: service_healthy image: umap/umap:1.3.2 ports: - "${PORT-8000}:8000" diff --git a/docker/entrypoint.sh b/docker/entrypoint.sh index bf6c5165..0151897c 100755 --- a/docker/entrypoint.sh +++ b/docker/entrypoint.sh @@ -3,24 +3,8 @@ set -eo pipefail source /venv/bin/activate -# default variables -: "${SLEEP:=1}" -: "${TRIES:=60}" - -function wait_for_database {( - echo "Waiting for database to respond..." - tries=0 - while true; do - [[ $tries -lt $TRIES ]] || return - (echo "from django.db import connection; connection.connect()" | umap shell) >/dev/null - [[ $? -eq 0 ]] && return - sleep $SLEEP - tries=$((tries + 1)) - done -)} - # first wait for the database -wait_for_database +umap wait_for_database # then migrate the database umap migrate # then collect static files diff --git a/pyproject.toml b/pyproject.toml index 9c7177b1..8a99f166 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -36,6 +36,7 @@ dependencies = [ "django-agnocomplete==2.2.0", "django-compressor==4.3.1", "django-environ==0.10.0", + "django-probes==1.7.0", "Pillow==9.5.0", "psycopg2==2.9.6", "requests==2.31.0", diff --git a/umap/settings/base.py b/umap/settings/base.py index 6c1a84d7..a98413f5 100644 --- a/umap/settings/base.py +++ b/umap/settings/base.py @@ -117,6 +117,7 @@ INSTALLED_APPS = ( 'django.contrib.admin', 'django.contrib.gis', + 'django_probes', 'umap', 'compressor', 'social_django',