From 68614958a91d71474b829e838559dfcef726f7d9 Mon Sep 17 00:00:00 2001 From: Ron Rise Date: Tue, 21 Oct 2025 14:33:11 +0000 Subject: [PATCH] feat: add migration container and healthchecks for services (#8) Reviewed-on: https://gitea.siteworxpro.com/siteworxpro/Php-Template/pulls/8 Co-authored-by: Ron Rise Co-committed-by: Ron Rise --- bin/migrate.sh | 4 ++++ docker-compose.yml | 28 ++++++++++++++++++++++++++++ migrations.Dockerfile | 3 +++ 3 files changed, 35 insertions(+) create mode 100755 bin/migrate.sh diff --git a/bin/migrate.sh b/bin/migrate.sh new file mode 100755 index 0000000..c39f90f --- /dev/null +++ b/bin/migrate.sh @@ -0,0 +1,4 @@ +eval #!/bin/sh +set -e + +migrate -path /app/db/migrations -database "postgres://$DB_USERNAME:$DB_PASSWORD@$DB_HOST:$DB_PORT/$DB_DATABASE?sslmode=disable" up \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index cde4c54..21607d2 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -12,6 +12,24 @@ services: environment: PHP_IDE_CONFIG: serverName=localhost + migration-container: + volumes: + - ./db/migrations:/app/db/migrations + - ./bin:/app/bin + image: siteworxpro/migrate:v4.18.3 + working_dir: /app +# entrypoint: "/bin/sh -c 'while true; do sleep 30; done;'" + entrypoint: /bin/sh -c '/app/bin/migrate.sh' + depends_on: + postgres: + condition: service_healthy + environment: + DB_USERNAME: ${DB_USERNAME:-siteworxpro} + DB_PASSWORD: ${DB_PASSWORD:-password} + DB_DATABASE: ${DB_DATABASE:-siteworxpro} + DB_HOST: ${DB_HOST-postgres} + DB_PORT: ${DB_PORT-5432} + dev-runtime: ports: - "9501:9501" @@ -29,6 +47,11 @@ services: redis: image: redis:latest + healthcheck: + test: ["CMD", "redis-cli", "ping"] + interval: 10s + timeout: 5s + retries: 5 ports: - "6379:6379" volumes: @@ -36,6 +59,11 @@ services: postgres: image: postgres:latest + healthcheck: + test: ["CMD-SHELL", "pg_isready -U ${DB_USERNAME:-siteworxpro}"] + interval: 10s + timeout: 5s + retries: 5 environment: POSTGRES_USER: ${DB_USERNAME:-siteworxpro} POSTGRES_PASSWORD: ${DB_PASSWORD:-password} diff --git a/migrations.Dockerfile b/migrations.Dockerfile index c12cd91..ae4c6fe 100644 --- a/migrations.Dockerfile +++ b/migrations.Dockerfile @@ -1,5 +1,8 @@ FROM siteworxpro/migrate:v4.18.3 ADD db/migrations /app/db/migrations +ADD bin/migrate.sh /app/bin/migrate.sh WORKDIR /app + +ENTRYPOINT ["/app/bin/migrate.sh"]