version: '3' services: api: build: dockerfile: taskcluster/docker/tooltool-api/Dockerfile args: SRC: . FRONTEND_CONFIG: config.local.mjs ports: - "8010:8010" volumes: # App reloading doesn't quite work because the app has to be installed # Maybe we should drop the volume mount and rely on rebuilding? - ./api:/app # This mount does, however, because this mounted version of the config # ends up getting installed with the Python module. - ./api/src/tooltool_api/static/config.local.mjs:/app/src/tooltool_api/static/config.mjs environment: - HOST=0.0.0.0 - PORT=8010 - APP_URL=https://localhost:8010 - APP_SETTINGS=/app/settings.py - ENV=localdev - DATABASE_URL=postgresql://tooltooluser:tooltoolpassword@db/tooltooldb # "notasecret" - SECRET_KEY=bm90YXNlY3JldA== # Used by the taskcluster library, not by us directly - TASKCLUSTER_ROOT_URL - TASKCLUSTER_CLIENT_ID - TASKCLUSTER_ACCESS_TOKEN # S3_REGIONS format is "foo:bar; blah:blah", which turns into a dict in the app - S3_REGIONS - S3_REGIONS_ACCESS_KEY_ID - S3_REGIONS_SECRET_ACCESS_KEY - CLOUDFRONT_URL - CLOUDFRONT_KEY_ID # Path to a file - CLOUDFRONT_PRIVATE_KEY - DISABLE_PULSE=1 depends_on: db: condition: service_healthy db: image: postgres:16 volumes: - dbstore:/var/lib/postgresql/data environment: - POSTGRES_USER=tooltooluser - POSTGRES_PASSWORD=tooltoolpassword - POSTGRES_DB=tooltooldb healthcheck: test: ["CMD-SHELL", "pg_isready -U tooltooluser -d tooltooldb"] interval: 10s timeout: 5s retries: 5 volumes: dbstore: