This repository builds a custom Jenkins controller image with extra tooling for CI/CD workflows.
- Keep responsibilities separated by file:
Dockerfile: base image, pinned tool/runtime versions, package and binary installationjenkins.sh: container entrypoint and Jenkins JVM startup behaviorjenkins-support: shared shell helpers (copy/install/retry/version helpers)install-plugins.sh: plugin download + dependency resolution logic
- Do not mix runtime behavior changes into
Dockerfilewhen they belong injenkins.shor helper scripts.
When updating image/tool versions, change all related items in one patch:
- Base JDK image tag in
Dockerfile. - Jenkins WAR pins:
JENKINS_VERSIONJENKINS_SHAfrom${JENKINS_URL}.sha256
- Tool pins (
HELM_VERSION,TERRAFORM_VERSION,TINI_VERSION) and any matching download URLs. - Keep checksum/signature verification in place for downloaded artifacts.
- Prefer pinned versions over implicit
latest. - Verify downloaded binaries with checksum or signature.
- Keep installs non-interactive and suitable for Docker build context.
- Update
README.mdwhenever behavior, defaults, or required configuration changes.