name: torrent-peer-interop services: fixture: build: context: .. dockerfile: interop/Dockerfile command: - /bin/sh - -c - > python3 /work/interop/make_fixture.py --out /fixture --size ${FIXTURE_SIZE:-32M} && touch /tmp/fixture-ready && tail -f /dev/null volumes: - fixture:/fixture networks: - torrent_lab healthcheck: test: ["CMD", "test", "-f", "/tmp/fixture-ready"] interval: 2s timeout: 1s retries: 30 seed-libtorrent-plain: build: context: .. dockerfile: interop/Dockerfile depends_on: fixture: condition: service_healthy command: - python3 - /work/interop/seed_libtorrent.py - --torrent - /fixture/test.torrent - --data - /fixture - --port - "6881" - --mode - plain volumes: - fixture:/fixture:ro networks: - torrent_lab healthcheck: test: ["CMD", "test", "-f", "/tmp/seed-ready"] interval: 2s timeout: 1s retries: 30 seed-libtorrent-mse: build: context: .. dockerfile: interop/Dockerfile depends_on: fixture: condition: service_healthy command: - python3 - /work/interop/seed_libtorrent.py - --torrent - /fixture/test.torrent - --data - /fixture - --port - "6882" - --mode - mse volumes: - fixture:/fixture:ro networks: - torrent_lab healthcheck: test: ["CMD", "test", "-f", "/tmp/seed-ready"] interval: 2s timeout: 1s retries: 30 seed-libtorrent-utp: build: context: .. dockerfile: interop/Dockerfile depends_on: fixture: condition: service_healthy command: - python3 - /work/interop/seed_libtorrent.py - --torrent - /fixture/test.torrent - --data - /fixture - --port - "6883" - --mode - utp volumes: - fixture:/fixture:ro networks: - torrent_lab healthcheck: test: ["CMD", "test", "-f", "/tmp/seed-ready"] interval: 2s timeout: 1s retries: 30 seed-libtorrent-utp-mse: build: context: .. dockerfile: interop/Dockerfile depends_on: fixture: condition: service_healthy command: - python3 - /work/interop/seed_libtorrent.py - --torrent - /fixture/test.torrent - --data - /fixture - --port - "6884" - --mode - utp-mse volumes: - fixture:/fixture:ro networks: - torrent_lab healthcheck: test: ["CMD", "test", "-f", "/tmp/seed-ready"] interval: 2s timeout: 1s retries: 30 seed-transmission: build: context: .. dockerfile: interop/Dockerfile depends_on: fixture: condition: service_healthy command: - python3 - /work/interop/seed_transmission.py - --torrent - /fixture/test.torrent - --data - /fixture - --peer-port - "6891" - --rpc-port - "9091" volumes: - fixture:/fixture:ro networks: - torrent_lab healthcheck: test: ["CMD", "test", "-f", "/tmp/seed-ready"] interval: 2s timeout: 1s retries: 45 seed-transmission-utp: build: context: .. dockerfile: interop/Dockerfile depends_on: fixture: condition: service_healthy command: - python3 - /work/interop/seed_transmission.py - --torrent - /fixture/test.torrent - --data - /fixture - --peer-port - "6896" - --rpc-port - "9092" - --utp volumes: - fixture:/fixture:ro networks: - torrent_lab healthcheck: test: ["CMD", "test", "-f", "/tmp/seed-ready"] interval: 2s timeout: 1s retries: 45 seed-transmission-mse: build: context: .. dockerfile: interop/Dockerfile depends_on: fixture: condition: service_healthy command: - python3 - /work/interop/seed_transmission.py - --torrent - /fixture/test.torrent - --data - /fixture - --peer-port - "6897" - --rpc-port - "9093" - --encryption - required volumes: - fixture:/fixture:ro networks: - torrent_lab healthcheck: test: ["CMD", "test", "-f", "/tmp/seed-ready"] interval: 2s timeout: 1s retries: 45 seed-aria2: build: context: .. dockerfile: interop/Dockerfile depends_on: fixture: condition: service_healthy command: - python3 - /work/interop/seed_aria2.py - --torrent - /fixture/test.torrent - --data - /fixture - --port - "6892" volumes: - fixture:/fixture:ro networks: - torrent_lab healthcheck: test: ["CMD", "test", "-f", "/tmp/seed-ready"] interval: 2s timeout: 1s retries: 45 seed-qbittorrent: build: context: .. dockerfile: interop/Dockerfile depends_on: fixture: condition: service_healthy command: - python3 - /work/interop/seed_qbittorrent.py - --torrent - /fixture/test.torrent - --data - /fixture - --port - "6893" volumes: - fixture:/fixture:ro networks: - torrent_lab healthcheck: test: ["CMD", "test", "-f", "/tmp/seed-ready"] interval: 2s timeout: 1s retries: 45 seed-deluge: build: context: .. dockerfile: interop/Dockerfile depends_on: fixture: condition: service_healthy command: - python3 - /work/interop/seed_deluge.py - --torrent - /fixture/test.torrent - --data - /fixture - --port - "6894" - --daemon-port - "58846" volumes: - fixture:/fixture:ro networks: - torrent_lab healthcheck: test: ["CMD", "test", "-f", "/tmp/seed-ready"] interval: 2s timeout: 1s retries: 45 seed-rtorrent: build: context: .. dockerfile: interop/Dockerfile depends_on: fixture: condition: service_healthy command: - python3 - /work/interop/seed_rtorrent.py - --torrent - /fixture/test.torrent - --data - /fixture - --port - "6895" volumes: - fixture:/fixture:ro networks: - torrent_lab healthcheck: test: ["CMD", "test", "-f", "/tmp/seed-ready"] interval: 2s timeout: 1s retries: 45 runner: build: context: .. dockerfile: interop/Dockerfile depends_on: seed-libtorrent-plain: condition: service_healthy seed-libtorrent-mse: condition: service_healthy seed-libtorrent-utp: condition: service_healthy seed-libtorrent-utp-mse: condition: service_healthy seed-transmission: condition: service_healthy seed-transmission-utp: condition: service_healthy seed-transmission-mse: condition: service_healthy seed-aria2: condition: service_healthy seed-qbittorrent: condition: service_healthy seed-deluge: condition: service_healthy seed-rtorrent: condition: service_healthy command: - python3 - /work/interop/run_matrix.py - --fixture - /fixture - --clients - /work/interop/clients.json - --results - /results/results.json - --timeout - ${TEST_TIMEOUT:-90} volumes: - fixture:/fixture:ro - ./results:/results networks: - torrent_lab volumes: fixture: networks: torrent_lab: internal: true