From 9ba1351a3b435c48cc74255f2d6b06cd254872cf Mon Sep 17 00:00:00 2001 From: ksurl Date: Mon, 21 Nov 2022 16:18:05 -0800 Subject: [PATCH] refactor: use healthcheck for db, remove psql client from image (#737) * refactor: use healthcheck for db, remove postgresql client from main image * fix: redis dependency condition * cleanup entrypoint.sh * fix healthcheck command --- docker-compose.yml | 11 +++++++++-- docker/Dockerfile | 1 - docker/entrypoint.sh | 9 --------- 3 files changed, 9 insertions(+), 12 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index aa289ac5..48c633ab 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -7,8 +7,10 @@ services: ports: - '3000:3000' depends_on: - - postgres - - redis + postgres: + condition: service_healthy + redis: + condition: service_started environment: - HOST=localhost - PROTOCOL=http @@ -49,6 +51,11 @@ services: - POSTGRES_PASSWORD=automatisch_password volumes: - postgres_data:/var/lib/postgresql/data + healthcheck: + test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}"] + interval: 10s + timeout: 5s + retries: 5 redis: image: 'redis:7.0.4' volumes: diff --git a/docker/Dockerfile b/docker/Dockerfile index c1508952..2b3697d3 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -2,7 +2,6 @@ FROM node:16 WORKDIR /automatisch -RUN apt-get update && apt-get install -y postgresql-client COPY ./entrypoint.sh /entrypoint.sh RUN yarn global add @automatisch/cli@0.2.0 diff --git a/docker/entrypoint.sh b/docker/entrypoint.sh index 5ac0ae56..5f1f6f24 100755 --- a/docker/entrypoint.sh +++ b/docker/entrypoint.sh @@ -2,13 +2,6 @@ set -e -export PGPASSWORD="$POSTGRES_PASSWORD" - -until psql -h "$POSTGRES_HOST" -U "$POSTGRES_USERNAME" -d "$POSTGRES_DATABASE" -c '\q'; do - >&2 echo "Waiting for Postgres to be ready..." - sleep 1 -done - if [ ! -f /automatisch/storage/.env ]; then >&2 echo "Saving environment variables" ENCRYPTION_KEY="${ENCRYPTION_KEY:-$(openssl rand -base64 36)}" @@ -17,8 +10,6 @@ if [ ! -f /automatisch/storage/.env ]; then echo "APP_SECRET_KEY=$APP_SECRET_KEY" >> /automatisch/storage/.env fi ->&2 echo "Postgres is up - executing command" - if [ -n "$WORKER" ]; then automatisch start-worker --env-file /automatisch/storage/.env else