Files

90 lines
2.9 KiB
YAML

# This file is intended to be placed at the repository root before deployment.
services:
redis:
image: redis:7
restart: unless-stopped
minio:
image: minio/minio:latest
command: server /data --console-address ":9001"
environment:
MINIO_ROOT_USER: ${S3_ACCESS_KEY_ID:-videoroll}
MINIO_ROOT_PASSWORD: ${S3_SECRET_ACCESS_KEY:-videorollsecret}
ports:
- "${PUBLISH_ADDR:-127.0.0.1}:${MINIO_CONSOLE_PORT:-9001}:9001"
volumes:
- ./data/minio:/data
restart: unless-stopped
minio-init:
image: minio/mc:latest
depends_on:
- minio
entrypoint: /bin/sh
command: >
-c "
until mc alias set local http://minio:9000 ${S3_ACCESS_KEY_ID:-videoroll} ${S3_SECRET_ACCESS_KEY:-videorollsecret}; do
echo 'waiting for minio...';
sleep 1;
done &&
mc mb -p local/${S3_BUCKET:-videoroll} || true
"
restart: "no"
app:
build:
context: .
dockerfile: Dockerfile
args:
INSTALL_ASR: ${INSTALL_ASR:-1}
YTDLP_VERSION: ${YTDLP_VERSION:-latest}
image: videoroll:prod
environment:
DATABASE_URL: ${DATABASE_URL}
REDIS_URL: ${REDIS_URL:-redis://redis:6379/0}
S3_ENDPOINT_URL: ${S3_ENDPOINT_URL:-http://minio:9000}
S3_ACCESS_KEY_ID: ${S3_ACCESS_KEY_ID:-videoroll}
S3_SECRET_ACCESS_KEY: ${S3_SECRET_ACCESS_KEY:-videorollsecret}
S3_BUCKET: ${S3_BUCKET:-videoroll}
S3_REGION_NAME: ${S3_REGION_NAME:-us-east-1}
S3_USE_SSL: ${S3_USE_SSL:-false}
UVICORN_ROOT_PATH: ${UVICORN_ROOT_PATH:-/api}
SUBTITLE_SERVICE_URL: ${SUBTITLE_SERVICE_URL:-http://localhost:8000/subtitle-service}
YOUTUBE_INGEST_URL: ${YOUTUBE_INGEST_URL:-http://localhost:8000/youtube-ingest}
BILIBILI_PUBLISHER_URL: ${BILIBILI_PUBLISHER_URL:-http://localhost:8000/bilibili-publisher}
BILIBILI_PUBLISH_MODE: ${BILIBILI_PUBLISH_MODE:-web}
volumes:
- ./data/models:/models
- ./data/secrets:/secrets
- ./data/work:/work
# Expose the whole Intel DRM device tree so both VAAPI and OpenVINO GPU
# runtimes can discover the render device and initialize compute contexts.
devices:
- "/dev/dri:/dev/dri"
extra_hosts:
- host.docker.internal:host-gateway
depends_on:
redis:
condition: service_started
minio:
condition: service_started
minio-init:
condition: service_completed_successfully
restart: unless-stopped
web:
build:
context: ./src/web
args:
VITE_ORCHESTRATOR_URL: ${VITE_ORCHESTRATOR_URL:-}
VITE_SUBTITLE_SERVICE_URL: ${VITE_SUBTITLE_SERVICE_URL:-}
VITE_YOUTUBE_INGEST_URL: ${VITE_YOUTUBE_INGEST_URL:-}
VITE_BILIBILI_PUBLISHER_URL: ${VITE_BILIBILI_PUBLISHER_URL:-}
image: videoroll-web:prod
ports:
- "${PUBLISH_ADDR:-127.0.0.1}:${WEB_PORT:-3000}:80"
depends_on:
app:
condition: service_started
restart: unless-stopped