Skip to content

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.