docker-rollout is a Docker CLI plugin that enables zero downtime deployment for Docker Compose services.
The tool solves the problem of service interruption during deployments by implementing a rolling update strategy. When you run docker rollout on a service, it scales the service to twice its current number of instances, waits for the new containers to become healthy using Docker healthchecks, and then removes the old containers. This approach keeps traffic flowing to healthy instances throughout the update process.
Teams should adopt this tool if they run services on Docker Compose and need to deploy updates without downtime. It works best for applications already using a reverse proxy like Traefik or nginx-proxy to route traffic, since the tool cannot manage port bindings directly. The plugin integrates seamlessly into existing deployment scripts as a drop-in replacement for docker compose up. However, there are constraints: services cannot define container_name or ports in the compose file, and to avoid dropping in-flight requests, you need to implement container draining with a pre-stop hook that marks old containers as unhealthy before removal.
Development activity shows consistent maintenance with regular updates addressing user feedback and edge cases. The project maintains clear documentation with examples and detailed option descriptions. The codebase remains focused on its core functionality without scope creep, and the tool has been refined based on practical deployment scenarios including the addition of container draining support.