ITADN
kimdre/doco-cd

版本发布 8

v0.89.0
? · 2026-05-24

<!-- Release notes generated using configuration in .github/release.yml at main --> ## What's Changed - Doco-CD is now built with the Docker CLI buildx plugin and supports building images that require [BuildKit](https://docs.docker.com/build/buildkit/). - Added support to use [OCI artifacts](https://doco.cd/latest/Advanced/OCI/Artifact-Usage/) for deployments. - Poll intervals can now be definied as integer (`60`), numeric strings (`"60"`) and [Go duration](https://pkg.go.dev/time#ParseDuration) strings (`"60s"` or `"1m"`). Intervals are now always shown in the logs as Go durations. - Added new options to control volume and image cleanup when removing stacks with auto-discovery, see [the docs](https://doco.cd/latest/Deploy-Settings/#controlling-resource-cleanup-on-stack-deletion). - Doco-CD attempts to repair broken/corrupt Git repository automatically. - Polling should no longer handle ephemeral containers (scheduled jobs) as reconciliation drift - When the expected deployment config is not found in the repository, Doco-CD will now fail the deployment instead of falling back to default values. Deployment config files (`.doco-cd.yml`) are now always required. - Added a new [`wait_running_jobs`](https://doco.cd/latest/Deploy-Settings/#wait-for-running-scheduled-jobs-before-deployment) deployment configuration option and [label](https://doco.cd/latest/Advanced/Job-Scheduling/#configuration:~:text=cd.doco.job.wait_running_jobs) to let doco-cd wait for running jobs before running a deployment to prevent long-running jobs from being interrupted. - Fixed an issue that caused doco-cd to ignore autodicovery config changes. > [!NOTE] > The [auto-discovery config](https://doco.cd/latest/Deploy-Settings/#auto-discovery-settings) is stored as a container label. This is neccesarry so that doco-cd is able to know how to clean up obsolete/removed stacks. When upgrading your doco-cd instance, all containers will be recreated once to hold the correct auto-discovered stack configuration. ### ✨ Features * feat(oci): add support for OCI artifacts as a deployment source by @kimdre in https://github.com/kimdre/doco-cd/pull/1348 * feat(auto-discovery): enhance configuration with volume and image removal options by @kimdre in https://github.com/kimdre/doco-cd/pull/1354 * feat(git): implement repository corruption detection and repair mechanism by @kimdre in https://github.com/kimdre/doco-cd/pull/1361 * feat(scheduler): add option to wait for running jobs before deploying by @kimdre in https://github.com/kimdre/doco-cd/pull/1365 ### 🌟 Improvements * refactor(ssh): optimize endpoint checks by @kimdre in https://github.com/kimdre/doco-cd/pull/1350 * feat(build): vendor buildx CLI plugin to enable BuildKit Dockerfiles by @SamORichards in https://github.com/kimdre/doco-cd/pull/1340 * refactor(poll): update interval handling to use Go durations by @kimdre in https://github.com/kimdre/doco-cd/pull/1352 * fix(deploy): require deploy config file by @kimdre in https://github.com/kimdre/doco-cd/pull/1362 * feat(scheduler): add ephemeral label handling for one-off jobs by @kimdre in https://github.com/kimdre/doco-cd/pull/1353 * feat(compose): improve service readiness check by @kimdre in https://github.com/kimdre/doco-cd/pull/1383 * fix(auto-discovery): improve performance by @kimdre in https://github.com/kimdre/doco-cd/pull/1385 ### 🐛 Bug Fixes * feat(auto-discovery): implement auto-discovery config label drift detection by @kimdre in https://github.com/kimdre/doco-cd/pull/1363 * fix: prevent infinite hang by @qianlongzt in https://github.com/kimdre/doco-cd/pull/1384 ### 📦 Dependencies * chore(deps): update golang:1.26.3 docker digest to 633d23b by @renovate[bot] in https://github.com/kimdre/doco-cd/pull/1343 * fix(deps): update module github.com/getsops/sops/v3 to v3.13.0 by @renovate[bot] in https://github.com/kimdre/doco-cd/pull/1342 * chore(deps): update module golang.org/x/tools to v0.45.0 by @renovate[bot] in https://github.com/kimdre/doco-cd/pull/1341 * fix(deps): update module github.com/go-git/go-billy/v5 to v5.9.0 by @renovate[bot] in https://github.com/kimdre/doco-cd/pull/1344 * fix(deps): update module github.com/go-git/go-git/v5 to v5.19.0 by @renovate[bot] in https://github.com/kimdre/doco-cd/pull/1345 * chore(deps): update golang:1.26.3 docker digest to 313faae by @renovate[bot] in https://github.com/kimdre/doco-cd/pull/1347 * chore(deps): update github/codeql-action digest to 9e0d7b8 by @renovate[bot] in https://github.com/kimdre/doco-cd/pull/1355 * fix(deps): update module github.com/getsops/sops/v3 to v3.13.1 by @renovate[bot] in https://github.com/kimdre/doco-cd/pull/1357 * fix(deps): update module github.com/google/go-containerregistry to v0.21.5 by @renovate[bot] in https://github.com/kimdre/doco-cd/pull/1358 * chore(deps): update docker/buildx-bin docker tag to v0.34.0 by @renovate[bot] in https://github.com/kimdre/doco-cd/pull/1359 * fix(deps): update module github.com/docker/cli to v29.5.0+incompatible by @renovate[bot] in https://github.com/kimdre/doco-cd/pull/1360 * chore(deps): update dependency zensical to v0.0.42 by @renovate[bot] in https://github.com/kimdre/doco-cd/pull/1356 * chore(deps): update gcr.io/distroless/base-debian13 docker digest to f2df870 by @renovate[bot] in https://github.com/kimdre/doco-cd/pull/1364 * chore(deps): update codecov/codecov-action action to v6.0.1 by @renovate[bot] in https://github.com/kimdre/doco-cd/pull/1367 * fix(deps): update module github.com/docker/cli to v29.5.1+incompatible by @renovate[bot] in https://github.com/kimdre/doco-cd/pull/1368 * fix(deps): update module github.com/go-git/go-git/v5 to v5.19.1 by @renovate[bot] in https://github.com/kimdre/doco-cd/pull/1373 * chore(deps): update dependency zensical to v0.0.43 by @renovate[bot] in https://github.com/kimdre/doco-cd/pull/1371 * chore(deps): update docker/buildx-bin docker tag to v0.34.1 by @renovate[bot] in https://github.com/kimdre/doco-cd/pull/1372 * chore(deps): update dataaxiom/ghcr-cleanup-action digest to 34a2b6c by @renovate[bot] in https://github.com/kimdre/doco-cd/pull/1370 * chore(deps): update docker/dockerfile:1 docker digest to 87999aa by @renovate[bot] in https://github.com/kimdre/doco-cd/pull/1375 * chore(deps): update docker/github-builder digest to 0738332 by @renovate[bot] in https://github.com/kimdre/doco-cd/pull/1376 * chore(deps): update dataaxiom/ghcr-cleanup-action digest to 374e202 by @renovate[bot] in https://github.com/kimdre/doco-cd/pull/1379 * chore(deps): update docker/build-push-action digest to f9f3042 by @renovate[bot] in https://github.com/kimdre/doco-cd/pull/1380 * chore(deps): update docker/setup-buildx-action digest to d7f5e7f by @renovate[bot] in https://github.com/kimdre/doco-cd/pull/1382 * chore(deps): update docker/metadata-action digest to 80c7e94 by @renovate[bot] in https://github.com/kimdre/doco-cd/pull/1381 ### 📚 Miscellaneous * chore: ci skip build dev duplicate build by @qianlongzt in https://github.com/kimdre/doco-cd/pull/1349 * docs: improve docs on encryption and nested config by @JojoMee in https://github.com/kimdre/doco-cd/pull/1377 ## New Contributors * @SamORichards made their first contribution in https://github.com/kimdre/doco-cd/pull/1340 **Full Changelog**: https://github.com/kimdre/doco-cd/compare/v0.88.0...v0.89.0

v0.86.0
? · 2026-05-10

<!-- Release notes generated using configuration in .github/release.yml at main --> ## What's Changed ### Scheduled jobs This release adds a job scheduler that allows you to run containers/services defined in your docker compose files as scheduled jobs based on cron-like schedules or predefined intervals. This is useful for running periodic tasks such as backups, maintenance scripts, or any recurring workloads without needing an external scheduler. More details in the [documentation](https://doco.cd/latest/Advanced/Scheduled-Jobs/). ### Domain-scoped Git authentication You can now specify domain-scoped Git auth credentials to allow Git operations (clone/fetch) for multiple SCMs/domains. If no domains match or domain-scoped authentication is not configured, the `GIT_ACCESS_TOKEN` / `SSH_PRIVATE_KEY` values are used. The domain-scoped authentication configuration is a YAML list where each entry defines credentials for one or more domains. Each entry in the list has the following structure: ```yaml - domains: # (Required) List of domain names or patterns - domain1.com - domain2.com - '*.example.com' git_access_token: xxx # (Optional) HTTP token for git access ssh_private_key: | # (Optional) SSH private key content -----BEGIN OPENSSH PRIVATE KEY----- ... -----END OPENSSH PRIVATE KEY----- ssh_private_key_passphrase: xxx # (Optional) Passphrase for encrypted SSH key ``` More details in the [documentation](https://doco.cd/latest/App-Settings/#domain-scoped-git-authentication). ### ✨ Features * feat(scheduler): add support for scheduled jobs/cronjobs by @kimdre in https://github.com/kimdre/doco-cd/pull/1325 * feat(git): add support for domain-scoped Git credentials by @kimdre in https://github.com/kimdre/doco-cd/pull/1326 ### 🌟 Improvements * feat(metrics): add metrics for scheduled job runs by @kimdre in https://github.com/kimdre/doco-cd/pull/1327 * fix(scheduler): improve handling of scheduled services in deployment by @kimdre in https://github.com/kimdre/doco-cd/pull/1328 ### 📦 Dependencies * fix(deps): update module github.com/docker/cli to v29.4.3+incompatible by @renovate[bot] in https://github.com/kimdre/doco-cd/pull/1320 * chore(deps): update github/codeql-action digest to 68bde55 by @renovate[bot] in https://github.com/kimdre/doco-cd/pull/1323 * chore(deps): update dependency golang to v1.26.3 by @renovate[bot] in https://github.com/kimdre/doco-cd/pull/1324 ### 📚 Miscellaneous * docs: improve code examples by @kimdre in https://github.com/kimdre/doco-cd/pull/1321 **Full Changelog**: https://github.com/kimdre/doco-cd/compare/v0.85.1...v0.86.0

v0.84.0-rc.3预发布
? · 2026-05-04

<!-- Release notes generated using configuration in .github/release.yml at main --> ## What's Changed This pre-release adds two new major improvements: ### Reconciliation on Docker events The reconciliation logic has been completely rewritten and now triggers on events from the Docker daemon (like a removed service or unhealthy container) to start the reconciliation process instead of checking on an interval if reconciliation is needed. Configuration options and further information can be found in the [documentation](https://doco.cd/next/Deploy-Settings/#reconciliation-settings). ### Image Digest get fetched with HEAD requests Doco-CD now fetches image digests from container registries using HEAD requests to avoid rate limits with a fallback to the previous GET request logic. This is useful for registries like DockerHub, where all GET requests against the registry count as an image pull, even if they don't download any image layers. ### ✨ Features * feat: trigger reconciliation on Docker daemon events by @kimdre in https://github.com/kimdre/doco-cd/pull/1268 ### 🌟 Improvements * feat(docker): implement registry image digest via HEAD by @kimdre in https://github.com/kimdre/doco-cd/pull/1294 ### 📦 Dependencies * chore(deps): update github/codeql-action digest to e46ed2c by @renovate[bot] in https://github.com/kimdre/doco-cd/pull/1289 * chore(deps): pin dependencies by @renovate[bot] in https://github.com/kimdre/doco-cd/pull/1288 * fix(deps): update module github.com/caarlos0/env/v11 to v11.4.1 by @renovate[bot] in https://github.com/kimdre/doco-cd/pull/1291 * chore(deps): update dependency zensical to v0.0.39 by @renovate[bot] in https://github.com/kimdre/doco-cd/pull/1290 * chore(deps): update module github.com/bombsimon/wsl/v5 to v5.8.0 by @renovate[bot] in https://github.com/kimdre/doco-cd/pull/1292 **Full Changelog**: https://github.com/kimdre/doco-cd/compare/v0.84.0-rc.2...v0.84.0-rc.3

v0.81.0-rc.3预发布
? · 2026-04-19

<!-- Release notes generated using configuration in .github/release.yml at main --> ## What's Changed ### 📚 Miscellaneous * chore(docs): reference correct paths in publish docs action by @kimdre in https://github.com/kimdre/doco-cd/pull/1234 * ci(docs): update docs publish workflow by @kimdre in https://github.com/kimdre/doco-cd/pull/1236 **Full Changelog**: https://github.com/kimdre/doco-cd/compare/v0.81.0-rc.2...v0.81.0-rc.3

v0.81.0-rc.2预发布
? · 2026-04-19

<!-- Release notes generated using configuration in .github/release.yml at main --> ## What's Changed ### 📚 Miscellaneous * fix(test): change tag to new tag without docs repo by @qianlongzt in https://github.com/kimdre/doco-cd/pull/1232 * docs: improve wiki by @kimdre in https://github.com/kimdre/doco-cd/pull/1233 **Full Changelog**: https://github.com/kimdre/doco-cd/compare/v0.81.0-rc.1...v0.81.0-rc.2

v0.78.0-rc.1预发布
? · 2026-04-07

<!-- Release notes generated using configuration in .github/release.yml at feat/decrypt-file-based-env-vars --> * feat(config): decrypt SOPS-encrypted content in file-based environment variables by @kimdre in #1193 **Full Changelog**: https://github.com/kimdre/doco-cd/compare/v0.77.0...v0.78.0-rc.1

v0.77.0-rc.1预发布
? · 2026-03-29

<!-- Release notes generated using configuration in .github/release.yml at main --> ## What's Changed When using docker compose with configs, secrets or bind mounts, changes to these resources will trigger a recreation of the service containers by default. To avoid this, you can set the new `cd.doco.deployment.recreate.ignore` service label to a YAML list of scopes that should be ignored for recreation. More info in the wiki: https://github.com/kimdre/doco-cd/wiki/Deploy-Settings#service-labels ### ✨ Features * feat(docker): add recreate ignore label to skip recreate by @qianlongzt in https://github.com/kimdre/doco-cd/pull/1158 ### 📦 Dependencies * chore(deps): update github/codeql-action digest to 3869755 by @renovate[bot] in https://github.com/kimdre/doco-cd/pull/1154 * fix(deps): update module github.com/docker/compose/v5 to v5.1.1 by @renovate[bot] in https://github.com/kimdre/doco-cd/pull/1155 * chore(deps): update golang:1.26.1 docker digest to 595c784 by @renovate[bot] in https://github.com/kimdre/doco-cd/pull/1160 * fix(deps): update module github.com/infisical/go-sdk to v0.6.9 by @renovate[bot] in https://github.com/kimdre/doco-cd/pull/1161 * chore(deps): update codecov/codecov-action action to v5.5.4 by @renovate[bot] in https://github.com/kimdre/doco-cd/pull/1165 * fix(deps): update aws-sdk-go-v2 monorepo by @renovate[bot] in https://github.com/kimdre/doco-cd/pull/1166 * chore(deps): update github/codeql-action digest to c10b806 by @renovate[bot] in https://github.com/kimdre/doco-cd/pull/1167 * chore(deps): update codecov/codecov-action action to v6 by @renovate[bot] in https://github.com/kimdre/doco-cd/pull/1168 **Full Changelog**: https://github.com/kimdre/doco-cd/compare/v0.76.0...v0.77.0-rc.1

v0.71.0
? · 2026-03-03

<!-- Release notes generated using configuration in .github/release.yml at main --> ## What's Changed ### 🌟 Improvements * feat(secretprovider): add retry logic for rate-limited API calls in secret retrieval by @kimdre in https://github.com/kimdre/doco-cd/pull/1058 ### 📦 Dependencies * chore(deps): update github/codeql-action digest to c793b71 by @renovate[bot] in https://github.com/kimdre/doco-cd/pull/1060 * chore(deps): update aquasecurity/trivy-action digest to 97e0b38 by @renovate[bot] in https://github.com/kimdre/doco-cd/pull/1059 * chore(deps): update golang:1.26.0 docker digest to fb612b7 by @renovate[bot] in https://github.com/kimdre/doco-cd/pull/1061 **Full Changelog**: https://github.com/kimdre/doco-cd/compare/v0.70.0...v0.71.0