mirror of
https://github.com/gesellix/Bose-SoundTouch.git
synced 2026-08-10 04:36:14 +00:00
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
94 lines
2.5 KiB
YAML
94 lines
2.5 KiB
YAML
services:
|
|
soundtouch-service:
|
|
build:
|
|
context: .
|
|
target: soundtouch-service
|
|
networks:
|
|
- soundtouch-test-net
|
|
volumes:
|
|
- ./tests/integration/testdata:/app/data
|
|
environment:
|
|
- SPOTIFY_CLIENT_ID=mock-id
|
|
- SPOTIFY_CLIENT_SECRET=mock-secret
|
|
- SPOTIFY_TOKEN_URL=http://spotify-mock:8080/api/token
|
|
- SPOTIFY_API_BASE=http://spotify-mock:8080
|
|
- AMAZON_CLIENT_ID=mock-amazon-id
|
|
- AMAZON_CLIENT_SECRET=mock-amazon-secret
|
|
- AMAZON_TOKEN_URL=http://amazon-mock:8080/auth/o2/token
|
|
- AMAZON_PROFILE_URL=http://amazon-mock:8080/user/profile
|
|
- TUNEIN_OPML_URL=http://tunein-mock:8080
|
|
- TUNEIN_API_URL=http://tunein-mock:8080
|
|
# Start only once every mock is actually listening (the mocks are `go run`,
|
|
# so cold compilation can take a while); see depends_on below.
|
|
depends_on:
|
|
spotify-mock:
|
|
condition: service_healthy
|
|
amazon-mock:
|
|
condition: service_healthy
|
|
tunein-mock:
|
|
condition: service_healthy
|
|
healthcheck:
|
|
test: ["CMD", "wget", "-q", "-O", "/dev/null", "http://localhost:8000/health"]
|
|
interval: 3s
|
|
timeout: 3s
|
|
retries: 30
|
|
start_period: 3s
|
|
|
|
spotify-mock:
|
|
image: golang:1.26.5-alpine
|
|
container_name: spotify-mock
|
|
working_dir: /app
|
|
volumes:
|
|
- .:/app
|
|
command: go run ./cmd/mock-spotify/main.go -port 8080
|
|
ports:
|
|
- "8081:8080"
|
|
networks:
|
|
- soundtouch-test-net
|
|
healthcheck:
|
|
test: ["CMD", "wget", "-q", "-O", "/dev/null", "http://localhost:8080/healthz"]
|
|
interval: 3s
|
|
timeout: 3s
|
|
retries: 30
|
|
start_period: 3s
|
|
|
|
amazon-mock:
|
|
image: golang:1.26.5-alpine
|
|
container_name: amazon-mock
|
|
working_dir: /app
|
|
volumes:
|
|
- .:/app
|
|
command: go run ./cmd/mock-amazon/main.go -port 8080
|
|
ports:
|
|
- "8082:8080"
|
|
networks:
|
|
- soundtouch-test-net
|
|
healthcheck:
|
|
test: ["CMD", "wget", "-q", "-O", "/dev/null", "http://localhost:8080/healthz"]
|
|
interval: 3s
|
|
timeout: 3s
|
|
retries: 30
|
|
start_period: 3s
|
|
|
|
tunein-mock:
|
|
image: golang:1.26.5-alpine
|
|
container_name: tunein-mock
|
|
working_dir: /app
|
|
volumes:
|
|
- .:/app
|
|
command: go run ./cmd/mock-tunein/main.go -port 8080
|
|
ports:
|
|
- "8083:8080"
|
|
networks:
|
|
- soundtouch-test-net
|
|
healthcheck:
|
|
test: ["CMD", "wget", "-q", "-O", "/dev/null", "http://localhost:8080/healthz"]
|
|
interval: 3s
|
|
timeout: 3s
|
|
retries: 30
|
|
start_period: 3s
|
|
|
|
networks:
|
|
soundtouch-test-net:
|
|
name: soundtouch-test-net
|