version: "3" services: sync-db: # Getting sporadic errors in spanner. # These errors are "INTERNAL: ZETASQL_RET_CHECK failure" # in the `backend/query/query_engine.cc` file for spanner. # These result in a 500 error, which causes the test to fail. # I believe come from the SQL parser, but am not sure. I am # unable to produce these errors locally, and am using the cited # version. image: gcr.io/cloud-spanner-emulator/emulator:1.5.13 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 -uroot -p$${MYSQL_ROOT_PASSWORD} version"] interval: 2s retries: 10 start_period: 20s timeout: 2s 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 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__RUN_MIGRATIONS: "true" volumes: tokenserver_db_data: # Application runs off of port 8000. # you can test if it's available with # curl "http://localhost:8000/__heartbeat__"