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"]