50 lines
1.3 KiB
YAML
50 lines
1.3 KiB
YAML
x-django: &django
|
|
image: funkwhale-api
|
|
volumes:
|
|
- ../api:/app
|
|
- ../.env:/app/.env
|
|
- "${MUSIC_DIRECTORY_SERVE_PATH:-../.state/music}:/music:ro"
|
|
- "../.state/plugins:/srv/funkwhale/plugins"
|
|
- "../.state/staticfiles:/staticfiles"
|
|
- "../.state/media:/protected/media"
|
|
- "../.state/${COMPOSE_PROJECT_NAME:-funkwhale}/media:/data/media"
|
|
depends_on:
|
|
postgres:
|
|
condition: service_healthy
|
|
redis:
|
|
condition: service_healthy
|
|
networks:
|
|
- internal
|
|
|
|
services:
|
|
api:
|
|
<<: *django
|
|
build:
|
|
context: ../api
|
|
dockerfile: Dockerfile.debian
|
|
healthcheck:
|
|
test:
|
|
[
|
|
"CMD-SHELL",
|
|
'docker compose logs api | grep -q "Uvicorn running on" || exit 0',
|
|
]
|
|
interval: 3s
|
|
timeout: 5s
|
|
retries: 3
|
|
command: >
|
|
sh -c "
|
|
funkwhale-manage collectstatic --no-input &&
|
|
uvicorn --reload config.asgi:application --host 0.0.0.0 --port 5000 --reload-dir config/ --reload-dir funkwhale_api/
|
|
"
|
|
|
|
celeryworker:
|
|
<<: *django
|
|
command: >
|
|
sh -c '
|
|
pip install watchdog[watchmedo] &&
|
|
watchmedo auto-restart --patterns="*.py" --recursive -- celery -A funkwhale_api.taskapp worker -l debug -B --concurrency=${CELERYD_CONCURRENCY}
|
|
'
|
|
depends_on:
|
|
api:
|
|
condition: service_healthy
|