Files
edge-device-image-updater/docker-stack.yml

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