| Crates.io | rolling-deployer |
| lib.rs | rolling-deployer |
| version | 0.2.18 |
| created_at | 2025-06-04 18:22:36.763765+00 |
| updated_at | 2025-06-17 17:00:39.657395+00 |
| description | A tool for deploying new versions of traefik configs |
| homepage | https://github.com/auser/rolling-deployer |
| repository | https://github.com/auser/rolling-deployer |
| max_upload_size | |
| id | 1700729 |
| size | 250,858 |
This project provides a robust deployer for Docker Compose services that use volume mounts. It enables rolling upgrades and safe rollbacks of containerized applications by versioning configuration directories and updating the docker-compose volume source. The deployer requires a docker-compose.yml file for your service, and manages config updates by switching the mounted config directory to the desired version.
docker-compose.yml file for your project. The deployer updates the config volume in this file.deployer --tag v1.2.3 --name my-project \
--repo-url https://github.com/org/repo.git \
--mount-path /etc/myapp/config \
--clone-path /opt/configs \
--compose-file ./docker-compose.yml
You can provide configuration via a .env file (default: .env). CLI flags always override .env values.
Example .env:
REPO_URL=https://github.com/org/repo.git
CLONE_PATH=/opt/configs
MOUNT_PATH=/etc/myapp/config
COMPOSE_FILE=./docker-compose.yml
NAME=my-project
SOCKET_PATH=/var/run/docker.sock
Then run:
deployer --tag v1.2.3
Or override any value:
deployer --tag v1.2.3 --name another-project
docker compose up -d --force-recreate for the service.Release a new version:
git ci -am "Updated version"; cargo release patch --execute --all --no-confirm; git push origin HEAD; git push --tags