Files
Auto_Bangumi/e2e/compose/browser.yml
2026-07-10 13:49:52 +02:00

140 lines
3.3 KiB
YAML

services:
app:
image: ${AB_E2E_APP_IMAGE:-auto-bangumi:e2e}
pull_policy: never
environment:
TZ: UTC
PUID: ${AB_E2E_PUID:-1000}
PGID: ${AB_E2E_PGID:-1000}
UMASK: "022"
AB_WEBUI_PORT: "7892"
AB_DEV_NO_AUTH: "0"
depends_on:
mock-upstream:
condition: service_healthy
fake-qb:
condition: service_healthy
volumes:
- type: bind
source: ${AB_E2E_CONFIG_DIR:?AB_E2E_CONFIG_DIR must be set}
target: /app/config
- type: bind
source: ${AB_E2E_DATA_DIR:?AB_E2E_DATA_DIR must be set}
target: /app/data
- type: bind
source: ${AB_E2E_DOWNLOAD_DIR:?AB_E2E_DOWNLOAD_DIR must be set}
target: /downloads
- type: bind
source: ${AB_E2E_LOG_FILE:?AB_E2E_LOG_FILE must be set}
target: /app/data/log.txt
healthcheck:
test: ["CMD", "wget", "-qO-", "http://127.0.0.1:7892/health"]
interval: 2s
timeout: 3s
retries: 30
start_period: 5s
stop_grace_period: 20s
networks:
- e2e
mock-upstream:
image: ${AB_E2E_MOCK_IMAGE:-auto-bangumi-e2e/mock-upstream:local}
pull_policy: never
build:
context: ../..
dockerfile: e2e/mock-upstream/Dockerfile
environment:
HOST: 0.0.0.0
PORT: "18888"
FIXTURES_ROOT: /fixtures
init: true
read_only: true
volumes:
- type: bind
source: ${AB_E2E_FIXTURES_DIR:?AB_E2E_FIXTURES_DIR must be set}
target: /fixtures
read_only: true
tmpfs:
- /tmp
healthcheck:
test:
- CMD
- python
- -c
- import urllib.request; urllib.request.urlopen('http://127.0.0.1:18888/health', timeout=2)
interval: 2s
timeout: 3s
retries: 20
start_period: 2s
networks:
- e2e
fake-qb:
image: ${AB_E2E_FAKE_QB_IMAGE:-auto-bangumi-e2e/fake-qb:local}
pull_policy: never
build:
context: ../..
dockerfile: e2e/fake-qb/Dockerfile
environment:
HOST: 0.0.0.0
PORT: "8080"
QB_USERNAME: admin
QB_PASSWORD: adminadmin
init: true
read_only: true
tmpfs:
- /tmp
healthcheck:
test:
- CMD
- python
- -c
- import urllib.request; urllib.request.urlopen('http://127.0.0.1:8080/__admin/state', timeout=2)
interval: 2s
timeout: 3s
retries: 20
start_period: 2s
networks:
- e2e
port-proxy:
image: ${AB_E2E_PROXY_IMAGE:-auto-bangumi-e2e/port-proxy:local}
pull_policy: never
build:
context: ../..
dockerfile: e2e/port-proxy/Dockerfile
environment:
HOST: 0.0.0.0
FORWARDS: >-
17892=app:7892,18888=mock-upstream:18888,
18080=fake-qb:8080,28080=qbittorrent:8080
depends_on:
app:
condition: service_healthy
init: true
read_only: true
ports:
- "127.0.0.1::17892"
- "127.0.0.1::18888"
- "127.0.0.1::18080"
tmpfs:
- /tmp
healthcheck:
test:
- CMD
- python
- -c
- import socket; socket.create_connection(('127.0.0.1', 17892), timeout=2).close()
interval: 2s
timeout: 3s
retries: 20
start_period: 2s
networks:
- e2e
- host-access
networks:
e2e:
internal: true
host-access: