4.2 KiB
Installation from Docker image
About
Diun provides automatically updated Docker 🐳 images within several registries:
Registry | Image |
---|---|
Docker Hub | crazymax/diun |
GitHub Container Registry | ghcr.io/crazy-max/diun |
It is possible to always use the latest stable tag or to use another service that handles updating Docker images.
Following platforms for this image are available:
$ docker run --rm mplatform/mquery crazymax/diun:latest
Image: crazymax/diun:latest
* Manifest List: Yes
* Supported platforms:
- linux/amd64
- linux/arm/v6
- linux/arm/v7
- linux/arm64
- linux/386
- linux/ppc64le
Volumes
Path | Description |
---|---|
/data |
Contains bbolt database which retains Docker images manifests |
Usage
!!! note This reference setup guides users through the setup based on Docker Compose and the Docker provider, but the installation of Docker Compose is out of scope of this documentation. To install Docker Compose itself, follow the official install instructions.
You can also use the [Swarm](../providers/swarm.md) or [Kubernetes](../providers/kubernetes.md) providers
if you don't want to use Docker Compose.
name: diun
services:
diun:
image: crazymax/diun:latest
command: serve
volumes:
- "./data:/data"
- "/var/run/docker.sock:/var/run/docker.sock"
environment:
- "TZ=Europe/Paris"
- "DIUN_WATCH_WORKERS=20"
- "DIUN_WATCH_SCHEDULE=0 */6 * * *"
- "DIUN_WATCH_JITTER=30s"
- "DIUN_PROVIDERS_DOCKER=true"
labels:
- "diun.enable=true"
restart: always
Edit this example with your preferences and run the following commands to bring up Diun:
docker compose up -d
docker compose logs -f
Or use the following command:
docker run -d --name diun \
-e "TZ=Europe/Paris" \
-e "DIUN_WATCH_WORKERS=20" \
-e "DIUN_WATCH_SCHEDULE=0 */6 * * *" \
-e "DIUN_WATCH_JITTER=30s" \
-e "DIUN_PROVIDERS_DOCKER=true" \
-v "$PWD/data:/data" \
-v "/var/run/docker.sock:/var/run/docker.sock" \
-l "diun.enable=true" \
crazymax/diun:latest
To upgrade your installation to the latest release:
docker compose pull
docker compose up -d
If you prefer to rely on the configuration file instead of environment variables:
name: diun
services:
diun:
image: crazymax/diun:latest
command: serve
volumes:
- "./data:/data"
- "./diun.yml:/diun.yml:ro"
- "/var/run/docker.sock:/var/run/docker.sock"
environment:
- "TZ=Europe/Paris"
- "LOG_LEVEL=info"
- "LOG_JSON=false"
restart: always
# ./diun.yml
watch:
workers: 20
schedule: "0 */6 * * *"
providers:
docker:
watchStopped: true
Podman
If you're using Podman there are some small changes:
version: "3.5"
services:
diun_app:
image: docker.io/crazymax/diun:latest
volumes:
- "./data:/data"
# root mode
- "/run/podman/podman.sock:/var/run/docker.sock"
# rootless mode
#- "$XDG_RUNTIME_DIR/podman/podman.sock:/var/run/docker.sock"
#- "/run/user/1000/podman/podman.sock:/var/run/docker.sock"
environment:
- "TZ=Europe/Paris"
- "DIUN_WATCH_WORKERS=20"
- "DIUN_WATCH_SCHEDULE=0 */6 * * *"
- "DIUN_WATCH_JITTER=30s"
- "DIUN_PROVIDERS_DOCKER=true"
labels:
- "diun.enable=true"
restart: always
Edit this example with your preferences and run the following commands to bring up Diun with podman-compose
:
podman-compose up -d
podman-compose logs -f