A Docker CLI plugin for zero-downtime deployments of Docker Compose services by scaling and swapping containers.
docker-rollout is a Docker CLI plugin that enables zero-downtime deployments for Docker Compose services. It automates the process of scaling services, waiting for new containers to become healthy, and removing old containers to update applications without service interruption. It solves the downtime issue caused by using `docker compose up` for deployments.
Developers and DevOps engineers using Docker Compose for single-server deployments who need reliable, zero-downtime updates without migrating to complex orchestration platforms.
It offers a simple, lightweight alternative to tools like Kubernetes or Nomad for Docker Compose setups, with built-in support for healthchecks and container draining to ensure seamless deployments.
🚀 Zero Downtime Deployment for Docker Compose
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Automates scaling to double instances, waiting for health checks, and removing old containers, eliminating manual scripting for seamless updates as described in the README.
Works seamlessly with both `docker compose` and `docker-compose` commands, fitting directly into existing Docker workflows without modification.
Leverages Docker healthchecks to ensure new containers are healthy before routing traffic, reducing deployment risks and improving reliability.
Supports pre-stop hooks to drain traffic from old containers, preventing request loss during updates, with examples provided for setup with proxies.
Requires a reverse proxy like Traefik or nginx-proxy for traffic routing, adding setup complexity and an external dependency that may not suit all environments.
Cannot use `container_name` and `ports` in docker-compose.yml, limiting flexibility for services that need direct port access or static naming.
Designed only for single-server setups, lacking features for high-availability, multi-node deployments, or advanced orchestration without additional tooling.