49 lines
1.5 KiB
YAML
49 lines
1.5 KiB
YAML
---
|
|
services:
|
|
diun:
|
|
image: darkalex17/diun-docker:latest
|
|
command: serve
|
|
volumes:
|
|
- "./data:/data"
|
|
- "/var/run/docker.sock:/var/run/docker.sock"
|
|
- "./swarm-update.sh:/swarm-update.sh"
|
|
- "/path/to/docker/config.json:/root/.docker/config.json:ro" # Specify the credentials config
|
|
environment:
|
|
- "LOG_LEVEL=info"
|
|
- "LOG_JSON=false"
|
|
- "DIUN_WATCH_WORKERS=20"
|
|
- "DIUN_WATCH_SCHEDULE=*/1 * * * *" # Check once every minute
|
|
- "DIUN_WATCH_JITTER=30s"
|
|
- "DIUN_PROVIDERS_SWARM=true"
|
|
- "DIUN_NOTIF_SCRIPT_CMD=sh"
|
|
- "DIUN_NOTIF_SCRIPT_ARGS=/swarm-update.sh"
|
|
deploy:
|
|
mode: replicated
|
|
replicas: 1
|
|
placement:
|
|
constraints:
|
|
- node.role == manager
|
|
|
|
radarr-mock:
|
|
image: darkalex17/radarr-mock:latest
|
|
ports:
|
|
- 7878:7878
|
|
healthcheck:
|
|
test: ["CMD", "curl", "-f", "http://localhost:7878"] # Ensure the new container is healthy and functional so we know we can kill the old container
|
|
interval: 10s
|
|
timeout: 3s
|
|
retries: 2
|
|
start_period: 10s
|
|
deploy:
|
|
restart_policy:
|
|
condition: on-failure
|
|
max_attempts: 3 # At most, try 3 times to start the container
|
|
delay: 5s
|
|
update_config:
|
|
order: start-first # Ensure a new container can be started before killing the old one
|
|
failure_action: rollback
|
|
delay: 10s
|
|
parallelism: 1
|
|
labels:
|
|
- "diun.enable=true" # Tell diun to monitor this service/container's image
|