mirror of
https://github.com/EstrellaXD/Auto_Bangumi.git
synced 2026-10-30 04:06:04 +08:00
140 lines
3.3 KiB
YAML
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:
|