mirror of
https://github.com/kimdre/doco-cd.git
synced 2026-11-13 17:31:20 +00:00
Docker Compose Continuous Deployment
https://doco.cd/latest/
continuous-delivery
continuous-deployment
devops
docker
docker-compose
docker-swarm
doco-cd
gitops
swarm-mode
webhook
- Go 99.6%
- Python 0.2%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
## Summary - Add the optional `cd.doco.job.timeout` label with positive Go-duration validation. - Gracefully stop expired workloads, report failure through existing status, metrics, and notifications, and release `skip_running`. - Support standalone `restart` and `one_off` jobs and Swarm `one_off` jobs. Reject timeouts for Swarm `restart` jobs. - Enforce remaining deadlines when recovering active one-off jobs and expose the optional timeout in REST/MCP job information. - Document timeout scope, lifecycle-hook behavior, recovery, and supported modes. Closes #2173 ## Verification - `make fmt`, `nobitwarden` build, IDE build, and E2E vet. - Targeted Docker timeout, parsing, validation, and stop-helper tests. - Scheduler, API, MCP, and controlplane package tests. - Ten repeated race-enabled runs covering timeouts, recovery, failure accounting, and run-lock release. - Standalone E2E covering both execution modes, repeated execution, dependency restoration, and forced-restart recovery. - Isolated Swarm E2E covering graceful shutdown and workload removal before failure reporting. - Strict wiki build, codespell, and `git diff --check`. The broader Docker package suite has six pre-existing failures, each reproduced on clean HEAD. These involve fixture/source metadata, Docker Desktop host-path translation, and Unix socket path length. <details> <summary>Baseline Docker test failures</summary> - `TestLoadComposeScheduledDeployConfigDiscoversDeploymentReference` - `TestLoadComposeScheduledDeployConfigUsesRecordedSnapshots` - `TestDeployComposeKeepsUnchangedServices` - `TestDeployComposeHotReloadsIgnoredResources` - `TestRecreateProjectManagedLegacyCheckout` - `TestVerifyDockerHostConnectionContextCancellation` </details> |
||
| .github | ||
| cmd | ||
| examples | ||
| internal | ||
| test | ||
| wiki | ||
| .dockerignore | ||
| .editorconfig | ||
| .gitignore | ||
| .gitmodules | ||
| .golangci.yaml | ||
| codecov.yml | ||
| CODEOWNERS | ||
| CONTRIBUTING.md | ||
| dev.compose.yaml | ||
| docker-compose.yml | ||
| Dockerfile | ||
| go.mod | ||
| go.sum | ||
| LICENSE | ||
| Makefile | ||
| README.md | ||
| renovate.json | ||
| SECURITY.md | ||
doco-cd - Docker Compose Continuous Deployment
GitOps for Docker Compose
Doco-CD is a lightweight, declarative GitOps continuous delivery tool that automatically deploys and updates Docker Compose projects/services and Swarm stacks using polling and webhooks.
You can think of it as a simple Portainer or ArgoCD alternative for Docker.
Documentation
You can find the documentation at doco.cd.
Features
- Easy to set up and use with minimal configuration.
- Runs with a minimal (distroless) image with tiny RAM and CPU requirements.
- Supports various Git providers.
- Deploy via webhooks and/or polling.
- Supports both Docker Compose projects and Swarm stacks in Swarm mode.
- Supports OCI artifacts and Git repositories for deployments.
- Supports various external secret providers and encryption with SOPS.
- Deploy to multiple Docker hosts with Docker Contexts.
- Control when deployments may happen with timezone-aware sync windows and cron-scheduled polling.
- Provides notifications and Prometheus metrics for monitoring.
- Job Scheduling, Pre/Post-deployment scripts, REST API and MCP Server for advanced automation and integrations.
Community
- Ask questions or discuss ideas on GitHub Discussions
- Report bugs or suggest features by opening an issue
Contributing
Contributions are welcome! Please see the contributing guidelines for more information.
Support the Project
If you would like to support the development of Doco-CD, please consider becoming a sponsor on GitHub Sponsors.
Doco-CD is proudly supported by