Skip to content
Automatically update running docker containers with newest available image
Branch: master
Clone or download
Pull request Compare This branch is 4 commits ahead, 31 commits behind pyouroboros:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

Discord BuyUsCoffee
Build Status Release Pypi Downloads Python Version Docker Pulls Layers

Automatically update your running Docker containers to the latest available image.

A python-based successor to watchtower


Ouroboros will monitor (all or specified) running docker containers and update them to the (latest or tagged) available image in the remote registry. The updated container uses the same tag and parameters that were used when the container was first created such as volume/bind mounts, docker network connections, environment variables, restart policies, entrypoints, commands, etc.

  • Push your image to your registry and simply wait your defined interval for ouroboros to find the new image and redeploy your container autonomously.
  • Notify you via many platforms courtesy of Apprise
  • Serve metrics for trend monitoring (Currently: Prometheus/Influxdb)
  • Limit your server ssh access
  • ssh -i key server.domainname "docker pull ... && docker run ..." is for scrubs
  • docker-compose pull && docker-compose up -d is for fancier scrubs

Getting Started

More detailed usage and configuration can be found on the wiki.


Ouroboros is deployed via docker image like so:

docker run -d --name ouroboros \
  -v /var/run/docker.sock:/var/run/docker.sock \

Example run with file output:

docker run -v /var/run/docker.sock:/var/run/docker.sock \
       jolibrain/ouroboros --volume=/home/you/here/:/opt/ \
       --dry-run --file /opt/version.json

This is image is compatible for amd64, arm32, and arm64 CPU architectures

or via docker-compose:

Official Example


Ouroboros can also be installed via pip:

pip install ouroboros-cli

And can then be invoked using the ouroboros command:

$ ouroboros --interval 300 --log-level debug

This can be useful if you would like to create a systemd service or similar daemon that doesn't run in a container


Per-command and scenario examples can be found in the wiki


All contributions are welcome! Contributing guidelines are in the works

You can’t perform that action at this time.