Ouroboros
Ouroboros is a Docker management utility that automatically updates Docker images if new ones are available.
Installation
There is not really an installation routine since the docker-compose
file contains anything required to start up the Docker container.
Configuration
The docker-compose
file defines the Ouroboros application and configures
required options. The application configuration is pretty straightforward as it:
- defines the docker image to be downloaded from docker hub
- provides a name for our service (for easier recognition of the container and navigation e.g. in Portainer)
- sets configuration options in the
environment
section
---
version: '3'
services:
ouroboros:
image: pyouroboros/ouroboros:latest
container_name: ouroboros
restart: unless-stopped
volumes:
- /var/run/docker.sock:/var/run/docker.sock
environment:
# Check interval in seconds... here we go for every 12 hours
- INTERVAL=43200
- LOG_LEVEL=error
- SELF_UPDATE=true
# to ignore container: provide the respective container name here
- IGNORE=nextcloud-app nextcloud-db
- CLEANUP=true
- TZ=Europe/Berlin
The environment section, we set the interval in which Ourobors will check for updated docker images. We go for every 12 hours here. For production use, we go for logging of errors only (during development and test phase, debug level might be helpful to identify potential error). Obviously Ouroboros shall update itself similar to other docker images. We also want to clean up old, no longer used images after update.
Most interesting configuration is which containers shall be ignored regarding the update of the corresponding docker image. Since I came across some issues with automatic Nextcloud updates and required database updates, I did exclude Nextcloud (application and database) from automatic updates.
Since Ouroboros ensures to keep the internal docker images up-to-date, we do not need to connect to any (external) network.