--- version: "3.8" services: postgres: image: postgres:15.3-alpine3.18 command: postgres -c 'max_connections=1000' environment: POSTGRES_DB: postgres POSTGRES_PASSWORD: postgres POSTGRES_USER: postgres POSTGRES_MULTIPLE_DATABASES: reference, transaction healthcheck: test: pg_isready --username "postgres" --dbname "reference" interval: 1s retries: 5 timeout: 5s ports: - 32260:5432 volumes: - ./docker-multiple-databases.sh:/docker-entrypoint-initdb.d/docker-multiple-databases.sh:ro tmpfs: - /var/lib/postgresql/data:rw # Necessary to speed up integration tests. migrate-reference: image: migrate/migrate:v4.16.2 command: > -source 'file:///migrations' -database 'postgresql://postgres:postgres@postgres:5432/reference?sslmode=disable' up depends_on: postgres: condition: service_healthy volumes: - ./migrations:/migrations:ro migrate-transaction: image: migrate/migrate:v4.16.2 command: > -source 'file:///migrations' -database 'postgresql://postgres:postgres@postgres:5432/transaction?sslmode=disable' up depends_on: postgres: condition: service_healthy volumes: - ./migrations:/migrations:ro migrate: image: postgres:15.3-alpine3.18 command: echo 'All migrations have been successfully applied!' depends_on: postgres: condition: service_healthy migrate-reference: condition: service_completed_successfully migrate-transaction: condition: service_completed_successfully