version: '3.8' services: db: image: postgres:15 container_name: postgres_db environment: POSTGRES_USER: testuser POSTGRES_PASSWORD: testpassword POSTGRES_DB: testdb ports: - "5435:5432" volumes: - db_data:/var/lib/postgresql/data pg_dump_uploader: build: context: . dockerfile: Dockerfile container_name: pg_dump_uploader environment: PG_HOST: db PG_PORT: 5432 PG_USER: testuser PG_PASSWORD: testpassword PG_DATABASE: testdb S3_BUCKET: test-bucket AWS_ACCESS_KEY_ID: test-access-key AWS_SECRET_ACCESS_KEY: test-secret-key AWS_DEFAULT_REGION: us-east-1 S3_ENDPOINT: http://minio:9000 depends_on: - db - minio minio: image: minio/minio container_name: minio command: server /data --console-address ":9001" environment: MINIO_ROOT_USER: test-access-key MINIO_ROOT_PASSWORD: test-secret-key ports: - "9000:9000" - "9001:9001" volumes: - minio_data:/data createbuckets: image: minio/mc depends_on: - minio entrypoint: > /bin/sh -c " until (/usr/bin/mc config host add myminio http://minio:9000 test-access-key test-secret-key) do echo '...waiting...' && sleep 1; done; /usr/bin/mc mb myminio/test-bucket; /usr/bin/mc policy download myminio/test-bucket; exit 0; " volumes: db_data: minio_data: