services: minio: restart: always image: quay.io/minio/minio:RELEASE.2022-10-20T00-55-09Z ports: - 9000:9000 - 9001:9001 environment: - MINIO_ROOT_USER=minio - MINIO_ROOT_PASSWORD=password command: server /data --address :9000 --console-address ":9001" minio_create_buckets: image: minio/mc environment: - MINIO_ROOT_USER=minio - MINIO_ROOT_PASSWORD=password entrypoint: - "/bin/sh" - "-c" command: - "until (/usr/bin/mc alias set minio http://minio:9000 $$MINIO_ROOT_USER $$MINIO_ROOT_PASSWORD) do echo 'Waiting to start minio...' && sleep 1; done; /usr/bin/mc mb minio/neon --region=eu-north-1; exit 0;" depends_on: - minio pageserver: restart: always image: ${REPOSITORY:-ghcr.io/neondatabase}/neon:${TAG:-latest} environment: - AWS_ACCESS_KEY_ID=minio - AWS_SECRET_ACCESS_KEY=password #- RUST_BACKTRACE=1 ports: #- 6400:6400 # pg protocol handler - 9898:9898 # http endpoints volumes: - ./pageserver_config:/data/.neon/ depends_on: - storage_broker - minio_create_buckets safekeeper1: restart: always image: ${REPOSITORY:-ghcr.io/neondatabase}/neon:${TAG:-latest} environment: - SAFEKEEPER_ADVERTISE_URL=safekeeper1:5454 - SAFEKEEPER_ID=1 - BROKER_ENDPOINT=http://storage_broker:50051 - AWS_ACCESS_KEY_ID=minio - AWS_SECRET_ACCESS_KEY=password #- RUST_BACKTRACE=1 ports: #- 5454:5454 # pg protocol handler - 7676:7676 # http endpoints entrypoint: - "/bin/sh" - "-c" command: - "safekeeper --listen-pg=$$SAFEKEEPER_ADVERTISE_URL --listen-http='0.0.0.0:7676' --id=$$SAFEKEEPER_ID --broker-endpoint=$$BROKER_ENDPOINT -D /data --remote-storage=\"{endpoint='http://minio:9000', bucket_name='neon', bucket_region='eu-north-1', prefix_in_bucket='/safekeeper/'}\"" depends_on: - storage_broker - minio_create_buckets safekeeper2: restart: always image: ${REPOSITORY:-ghcr.io/neondatabase}/neon:${TAG:-latest} environment: - SAFEKEEPER_ADVERTISE_URL=safekeeper2:5454 - SAFEKEEPER_ID=2 - BROKER_ENDPOINT=http://storage_broker:50051 - AWS_ACCESS_KEY_ID=minio - AWS_SECRET_ACCESS_KEY=password #- RUST_BACKTRACE=1 ports: #- 5454:5454 # pg protocol handler - 7677:7676 # http endpoints entrypoint: - "/bin/sh" - "-c" command: - "safekeeper --listen-pg=$$SAFEKEEPER_ADVERTISE_URL --listen-http='0.0.0.0:7676' --id=$$SAFEKEEPER_ID --broker-endpoint=$$BROKER_ENDPOINT -D /data --remote-storage=\"{endpoint='http://minio:9000', bucket_name='neon', bucket_region='eu-north-1', prefix_in_bucket='/safekeeper/'}\"" depends_on: - storage_broker - minio_create_buckets safekeeper3: restart: always image: ${REPOSITORY:-ghcr.io/neondatabase}/neon:${TAG:-latest} environment: - SAFEKEEPER_ADVERTISE_URL=safekeeper3:5454 - SAFEKEEPER_ID=3 - BROKER_ENDPOINT=http://storage_broker:50051 - AWS_ACCESS_KEY_ID=minio - AWS_SECRET_ACCESS_KEY=password #- RUST_BACKTRACE=1 ports: #- 5454:5454 # pg protocol handler - 7678:7676 # http endpoints entrypoint: - "/bin/sh" - "-c" command: - "safekeeper --listen-pg=$$SAFEKEEPER_ADVERTISE_URL --listen-http='0.0.0.0:7676' --id=$$SAFEKEEPER_ID --broker-endpoint=$$BROKER_ENDPOINT -D /data --remote-storage=\"{endpoint='http://minio:9000', bucket_name='neon', bucket_region='eu-north-1', prefix_in_bucket='/safekeeper/'}\"" depends_on: - storage_broker - minio_create_buckets storage_broker: restart: always image: ${REPOSITORY:-ghcr.io/neondatabase}/neon:${TAG:-latest} ports: - 50051:50051 command: - "storage_broker" - "--listen-addr=0.0.0.0:50051" compute1: restart: always build: context: ./compute_wrapper/ args: - REPOSITORY=${REPOSITORY:-ghcr.io/neondatabase} - COMPUTE_IMAGE=compute-node-v${PG_VERSION:-16} - TAG=${COMPUTE_TAG:-${TAG:-latest}} - http_proxy=${http_proxy:-} - https_proxy=${https_proxy:-} image: built-compute environment: - PG_VERSION=${PG_VERSION:-16} - TENANT_ID=${TENANT_ID:-} - TIMELINE_ID=${TIMELINE_ID:-} #- RUST_BACKTRACE=1 # Mount the test files directly, for faster editing cycle. volumes: - ./compute_wrapper/var/db/postgres/configs/:/var/db/postgres/configs/ - ./compute_wrapper/shell/:/shell/ ports: - 55433:55433 # pg protocol handler - 3080:3080 # http endpoints entrypoint: - "/shell/compute.sh" # Ad an alias for compute1 for compatibility networks: default: aliases: - compute depends_on: - safekeeper1 - safekeeper2 - safekeeper3 - pageserver compute_is_ready: image: postgres:latest environment: - PARALLEL_COMPUTES=1 entrypoint: - "/bin/sh" - "-c" command: - "for i in $(seq 1 $${PARALLEL_COMPUTES}); do until pg_isready -h compute$$i -p 55433 -U cloud_admin ; do sleep 1; done; done; echo All computes are started" depends_on: - compute1 neon-test-extensions: profiles: ["test-extensions"] image: ${REPOSITORY:-ghcr.io/neondatabase}/neon-test-extensions-v${PG_TEST_VERSION:-${PG_VERSION:-16}}:${TEST_EXTENSIONS_TAG:-${TAG:-latest}} environment: - PGUSER=${PGUSER:-cloud_admin} - PGPASSWORD=${PGPASSWORD:-cloud_admin} entrypoint: - "/bin/bash" - "-c" command: - sleep 3600 depends_on: - compute1