services: # change to official image when available https://github.com/radiantearth/stac-browser/pull/386 stac-browser: build: context: dockerfiles dockerfile: Dockerfile.browser ports: - "${MY_DOCKER_IP:-127.0.0.1}:8085:8085" depends_on: - stac-fastapi - titiler-pgstac - database stac-fastapi: image: ghcr.io/stac-utils/stac-fastapi-pgstac:4.0.1 ports: - "${MY_DOCKER_IP:-127.0.0.1}:8081:8081" environment: # Postgres connection - POSTGRES_USER=username - POSTGRES_PASS=password - POSTGRES_DBNAME=postgis - POSTGRES_HOST_READER=database - POSTGRES_HOST_WRITER=database - POSTGRES_PORT=5432 - DB_MIN_CONN_SIZE=1 - DB_MAX_CONN_SIZE=1 depends_on: - database command: bash -c "bash /tmp/scripts/wait-for-it.sh -t 120 -h database -p 5432 && uvicorn stac_fastapi.pgstac.app:app --host 0.0.0.0 --port 8081" volumes: - ./dockerfiles/scripts:/tmp/scripts titiler-pgstac: # At the time of writing, rasterio and psycopg wheels are not available for arm64 arch # so we force the image to be built with linux/amd64 platform: linux/amd64 image: ghcr.io/stac-utils/titiler-pgstac:1.7.0 ports: - "${MY_DOCKER_IP:-127.0.0.1}:8082:8082" environment: # Postgres connection - POSTGRES_USER=username - POSTGRES_PASS=password - POSTGRES_DBNAME=postgis - POSTGRES_HOST=database - POSTGRES_PORT=5432 - DB_MIN_CONN_SIZE=1 - DB_MAX_CONN_SIZE=10 # - DB_MAX_QUERIES=10 # - DB_MAX_IDLE=10 # GDAL Config - CPL_TMPDIR=/tmp - GDAL_CACHEMAX=75% - GDAL_INGESTED_BYTES_AT_OPEN=32768 - GDAL_DISABLE_READDIR_ON_OPEN=EMPTY_DIR - GDAL_HTTP_MERGE_CONSECUTIVE_RANGES=YES - GDAL_HTTP_MULTIPLEX=YES - GDAL_HTTP_VERSION=2 - VSI_CACHE=TRUE - VSI_CACHE_SIZE=536870912 # TiTiler Config - MOSAIC_CONCURRENCY=1 # AWS S3 endpoint config - AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID} - AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY} depends_on: - database command: bash -c "bash /tmp/scripts/wait-for-it.sh -t 120 -h database -p 5432 && uvicorn titiler.pgstac.main:app --host 0.0.0.0 --port 8082" volumes: - ./dockerfiles/scripts:/tmp/scripts tipg: image: ghcr.io/developmentseed/tipg:0.9.0 ports: - "${MY_DOCKER_IP:-127.0.0.1}:8083:8083" environment: # Postgres connection - POSTGRES_USER=username - POSTGRES_PASS=password - POSTGRES_DBNAME=postgis - POSTGRES_HOST=database - POSTGRES_PORT=5432 - DB_MIN_CONN_SIZE=1 - DB_MAX_CONN_SIZE=10 command: bash -c "bash /tmp/scripts/wait-for-it.sh -t 120 -h database -p 5432 && uvicorn tipg.main:app --host 0.0.0.0 --port 8083" depends_on: - database volumes: - ./dockerfiles/scripts:/tmp/scripts database: image: ghcr.io/stac-utils/pgstac:v0.9.2 environment: - POSTGRES_USER=username - POSTGRES_PASSWORD=password - POSTGRES_DB=postgis - PGUSER=username - PGPASSWORD=password - PGDATABASE=postgis ports: - "${MY_DOCKER_IP:-127.0.0.1}:5439:5432" command: postgres -N 500 volumes: - ./.pgdata:/var/lib/postgresql/data networks: default: name: eoapi-network