Watch
0
0
Fork
You've already forked doco-cd
0
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/
  • Go 99.6%
  • Python 0.2%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Kim Oliver Drechsel de724112c6
feat(scheduler): add configurable job timeouts (#2193)
## 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>
2026-11-13 14:37:27 +01:00
.github feat(api)!: add role- and permission-based API keys (#2180) 2026-11-12 09:57:19 +00:00
cmd fix(webhook): keep handover out of failures (#2181) 2026-11-13 08:46:05 +01:00
examples fix(git)!: scope HTTP(S) credentials to GIT_AUTH_DOMAINS hosts 2026-10-25 09:30:04 +01:00
internal feat(scheduler): add configurable job timeouts (#2193) 2026-11-13 14:37:27 +01:00
test feat(scheduler): add configurable job timeouts (#2193) 2026-11-13 14:37:27 +01:00
wiki feat(scheduler): add configurable job timeouts (#2193) 2026-11-13 14:37:27 +01:00
.dockerignore perf(healthcheck): run a separate small healthcheck binary in the image (#1989) 2026-10-06 17:27:12 +02:00
.editorconfig feat: repo clone (#1) 2024-07-18 23:51:17 +02:00
.gitignore feat(config): add deployment schema editor support (#2002) 2026-10-08 10:50:33 +02:00
.gitmodules fix: update submodule path for test cases 2026-09-09 14:58:17 +02:00
.golangci.yaml fix(e2e): refactor end-to-end test harness (#1732) 2026-08-24 16:33:05 +00:00
codecov.yml chore: add Codecov configuration for coverage reporting (#797) 2025-11-21 10:22:20 +00:00
CODEOWNERS chore: update CODEOWNERS to include wildcard for all paths 2026-05-04 22:06:25 +02:00
CONTRIBUTING.md feat(api)!: add role- and permission-based API keys (#2180) 2026-11-12 09:57:19 +00:00
dev.compose.yaml feat(profiling): add Go runtime profiling server and configuration options (#1813) 2026-09-05 16:15:00 +02:00
docker-compose.yml fix(git)!: scope HTTP(S) credentials to GIT_AUTH_DOMAINS hosts 2026-10-25 09:30:04 +01:00
Dockerfile chore(deps): update docker/buildx-bin docker tag to v0.39.0 (#2189) 2026-11-13 08:10:16 +01:00
go.mod fix(deps): update module golang.org/x/crypto to v0.59.0 (#2191) 2026-11-13 08:11:21 +01:00
go.sum fix(deps): update module golang.org/x/crypto to v0.59.0 (#2191) 2026-11-13 08:11:21 +01:00
LICENSE docs: adjust License 2024-07-18 21:53:24 +02:00
Makefile feat(api)!: add role- and permission-based API keys (#2180) 2026-11-12 09:57:19 +00:00
README.md feat: add timezone-aware sync windows and cron schedules for polling (#1920) 2026-09-29 14:13:51 +02:00
renovate.json chore(renovate): update schedule for dependency updates 2026-10-11 20:00:04 +02:00
SECURITY.md feat(api)!: add role- and permission-based API keys (#2180) 2026-11-12 09:57:19 +00:00

doco-cd - Docker Compose Continuous Deployment

GitOps for Docker Compose

Doco-CD Logo

GitHub Release CodeQL Tests Build Image Image Vulnerability Scan

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

Community

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

JetBrains logo

sponsors badge

Star History

Star History Chart