Sign inSign up

n8500x/jenkins

By n8500x

•Updated 18 days ago

Customized Jenkins LTS with baked-in CLI tools, ~150 plugins, and prefetched Maven artifacts

Image
0

135

n8500x/jenkins repository overview

⁠n8500x/jenkins

Customized Jenkins LTS image with baked-in build tooling, cloud/CLI utilities, and a large curated plugin set for CI/CD out of the box.

⁠Overview

This image extends the official jenkins/jenkins:2.541.2-lts base and pre-installs a broad set of command-line tools, language runtimes, and Jenkins plugins so a controller comes up ready for pipeline, Maven, container, AWS, and infrastructure-automation workloads. It also pre-fetches Maven artifacts at build time (useful for restricted/offline environments) and ships a small helper CLI for downloading additional artifacts from Maven Central.

⁠Quick start

docker pull n8500x/jenkins
docker run -d \
  --name jenkins \
  -p 8080:8080 \
  -p 50000:50000 \
  -v jenkins_home:/var/jenkins_home \
  n8500x/jenkins
  • 8080 — Jenkins web UI
  • 50000 — inbound agent (JNLP) port
  • jenkins_home — named volume persisting Jenkins configuration, jobs, and plugins

⁠What's inside

Base: jenkins/jenkins:2.541.2-lts

Added CLI tools & runtimes (installed on top of the base via apt / official installers):

  • Build & general: maven, make, g++, groovy, zip, rsync, gettext, groff, man-db, librdkafka-dev
  • Network / transfer: curl, wget, openssl, netcat-openbsd, telnet, sshpass
  • Python: python3, python3-pip with pykwalify, jsonschema, PyYAML, confluent-kafka (installed globally and for the jenkins user)
  • Automation & data: ansible, yq, jq, figlet
  • Containers: podman, docker-compose, plus Docker CE (docker-ce, docker-ce-cli, containerd.io) from the official Docker apt repo
  • Cloud: AWS CLI v2 (installed from the official AWS bundle)

Pre-installed plugins: roughly 150 plugins from plugins.txt, including Blue Ocean suite, the full Pipeline/Workflow stack (workflow-aggregator, pipeline-model-definition, pipeline-maven, pipeline-utility-steps), Git/GitHub integration (git, github-branch-source, github-pullrequest, github-oauth), authorization (active-directory, ldap, matrix-auth, role-strategy), HashiCorp Vault (hashicorp-vault-plugin, hashicorp-vault-pipeline), Nexus (nexus-artifact-uploader, nexus-jenkins-plugin), reporting (junit, jacoco, allure-jenkins-plugin, htmlpublisher), prometheus/metrics, thinBackup, audit-trail, mask-passwords, and AWS/S3 support (s3, pipeline-aws).

Maven artifact prefetch: at build time the image runs maven-download-cli against maven-artifacts.txt, downloading listed groupId:artifactId:version coordinates (jar + pom) into /artifacts/downloads. The bundled list pre-fetches org.codehaus.plexus:plexus-archiver:4.1.0.

⁠Configuration

Environment variables (build-time ARG/ENV):

VariableDefaultPurpose
TZAsia/DubaiContainer timezone (ARG TZ, applied to /etc/localtime and /etc/timezone)
DEBIAN_FRONTENDnoninteractiveSilences apt prompts during build

Ports: 8080 (web UI), 50000 (inbound agents).

Volume: /var/jenkins_home — mount a volume here to persist Jenkins state.

Included helper: /usr/local/bin/maven-download-cli — download Maven artifacts at runtime. Supports:

maven-download-cli download <group:artifact:version> [...]
maven-download-cli download-file <group:artifact:version> <classifier> [...]
maven-download-cli list-from-file <file>

Honors MAVEN_REPO (default https://repo1.maven.org/maven2) and MAVEN_ARTIFACTS_DIR (default: current directory).

⁠Build

docker build -t n8500x/jenkins .

Override the timezone at build time if needed:

docker build --build-arg TZ=UTC -t n8500x/jenkins .

⁠Notes

  • Runs as the jenkins user. The Dockerfile switches to root to install packages and drops back to jenkins at the end.
  • Timezone defaults to Asia/Dubai; tzdata configuration is isolated in its own layer so tzdata errors don't break the rest of the build. Override via --build-arg TZ=....
  • Plugin installation is done at build time with jenkins-plugin-cli from plugins.txt, so the controller does not need to reach the Jenkins update center on first start — useful for offline/restricted environments.
  • Maven prefetch is optional/conditional: the download step only runs if maven-artifacts.txt exists and is non-empty; otherwise it is skipped. Download failures for individual artifacts are tolerated and do not fail the build.
  • Docker-in-Docker: the Docker CLI and daemon packages are installed, but running Docker inside the container still requires access to a Docker daemon (e.g. mounting the host socket or a DinD setup).
  • Python's confluent-kafka is installed both globally and under the jenkins user, and package availability is verified during the build.

Tag summary

Content type

Image

Digest

sha256:c17817fa3…

Size

1.1 GB

Last updated

18 days ago

docker pull n8500x/jenkins