services: sync-db: # SPANNER_EMULATOR_VER (e2e/integration tests) — keep in sync with .github/workflows/main-workflow.yml image: gcr.io/cloud-spanner-emulator/emulator:1.5.52 ports: - "9010:9010" - "9020:9020" environment: PATH: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin sync-db-setup: image: app:build depends_on: - sync-db restart: "no" entrypoint: - /bin/sh - -c - /app/scripts/prepare-spanner.sh && sleep infinity environment: SYNC_SYNCSTORAGE__SPANNER_EMULATOR_HOST: sync-db:9020 tokenserver-db: image: docker.io/library/mysql:8.0 volumes: - tokenserver_db_data:/var/lib/mysql restart: always ports: - "3306" environment: #MYSQL_RANDOM_ROOT_PASSWORD: yes MYSQL_ROOT_PASSWORD: random MYSQL_DATABASE: tokenserver MYSQL_USER: test MYSQL_PASSWORD: test healthcheck: test: ["CMD-SHELL", "mysqladmin -h 127.0.0.1 -P 3306 -uroot -p$${MYSQL_ROOT_PASSWORD} ping"] interval: 2s retries: 15 start_period: 20s timeout: 3s mock-fxa-server: image: app:build restart: "no" entrypoint: "sh /app/scripts/start_mock_fxa_server.sh" environment: MOCK_FXA_SERVER_HOST: 0.0.0.0 MOCK_FXA_SERVER_PORT: 6000 syncserver: # NOTE: The naming in the rest of this repository has been updated to reflect the fact # that Syncstorage and Tokenserver are now part of one repository/server called # "Syncserver" (updated from "syncstorage-rs"). We keep the legacy naming below for # backwards compatibility with previous Docker images. image: ${SYNCSTORAGE_RS_IMAGE:-syncstorage-rs:latest} restart: always ports: - "8000:8000" depends_on: sync-db-setup: condition: service_started tokenserver-db: condition: service_healthy environment: SYNC_HOST: 0.0.0.0 SYNC_MASTER_SECRET: secret0 SYNC_SYNCSTORAGE__DATABASE_URL: spanner://projects/test-project/instances/test-instance/databases/test-database SYNC_SYNCSTORAGE__SPANNER_EMULATOR_HOST: sync-db:9010 SYNC_TOKENSERVER__DATABASE_URL: mysql://test:test@tokenserver-db:3306/tokenserver SYNC_TOKENSERVER__NODE_TYPE: spanner SYNC_TOKENSERVER__RUN_MIGRATIONS: "true" healthcheck: test: ["CMD-SHELL", "curl -f http://localhost:8000/__heartbeat__ || exit 1"] interval: 2s retries: 5 start_period: 30s timeout: 3s volumes: tokenserver_db_data: # Application runs off of port 8000. # you can test if it's available with # curl "http://localhost:8000/__heartbeat__"