diff --git a/bitnami/jenkins/2/debian-12/Dockerfile b/bitnami/jenkins/2/debian-12/Dockerfile index c58fd4d489c3..243abe26a6d1 100644 --- a/bitnami/jenkins/2/debian-12/Dockerfile +++ b/bitnami/jenkins/2/debian-12/Dockerfile @@ -8,7 +8,7 @@ ARG JAVA_EXTRA_SECURITY_DIR="/bitnami/java/extra-security" ARG TARGETARCH LABEL org.opencontainers.image.base.name="docker.io/bitnami/minideb:bookworm" \ - org.opencontainers.image.created="2026-05-23T08:25:10Z" \ + org.opencontainers.image.created="2026-05-25T14:45:45Z" \ org.opencontainers.image.description="Application packaged by Broadcom, Inc." \ org.opencontainers.image.documentation="https://github.com/bitnami/containers/tree/main/bitnami/jenkins/README.md" \ org.opencontainers.image.source="https://github.com/bitnami/containers/tree/main/bitnami/jenkins" \ @@ -53,7 +53,7 @@ RUN /opt/bitnami/scripts/java/postunpack.sh RUN /opt/bitnami/scripts/jenkins/postunpack.sh ENV APP_VERSION="2.555.2" \ BITNAMI_APP_NAME="jenkins" \ - IMAGE_REVISION="4" \ + IMAGE_REVISION="5" \ JAVA_HOME="/opt/bitnami/java" \ PATH="/opt/bitnami/common/bin:/opt/bitnami/java/bin:$PATH" diff --git a/bitnami/jenkins/2/debian-12/docker-compose.yml b/bitnami/jenkins/2/debian-12/docker-compose.yml index 9592aa82f1b9..096287440a9b 100644 --- a/bitnami/jenkins/2/debian-12/docker-compose.yml +++ b/bitnami/jenkins/2/debian-12/docker-compose.yml @@ -8,6 +8,7 @@ services: - '80:8080' environment: - JENKINS_PASSWORD=bitnami + - JENKINS_KEYSTORE_PASSWORD=bitnami volumes: - 'jenkins_data:/bitnami/jenkins' diff --git a/bitnami/jenkins/2/debian-12/rootfs/opt/bitnami/scripts/jenkins-env.sh b/bitnami/jenkins/2/debian-12/rootfs/opt/bitnami/scripts/jenkins-env.sh index fa41d9419d7f..c4894511113a 100644 --- a/bitnami/jenkins/2/debian-12/rootfs/opt/bitnami/scripts/jenkins-env.sh +++ b/bitnami/jenkins/2/debian-12/rootfs/opt/bitnami/scripts/jenkins-env.sh @@ -41,6 +41,7 @@ jenkins_env_vars=( JENKINS_HOST JENKINS_FORCE_HTTPS JENKINS_SKIP_BOOTSTRAP + JENKINS_SKIP_JKS JENKINS_ENABLE_SWARM JENKINS_CERTS_DIR JENKINS_KEYSTORE_PASSWORD @@ -107,14 +108,15 @@ export JENKINS_HOST="${JENKINS_HOST:-}" export JENKINS_FORCE_HTTPS="${JENKINS_FORCE_HTTPS:-no}" JENKINS_SKIP_BOOTSTRAP="${JENKINS_SKIP_BOOTSTRAP:-"${DISABLE_JENKINS_INITIALIZATION:-}"}" export JENKINS_SKIP_BOOTSTRAP="${JENKINS_SKIP_BOOTSTRAP:-no}" # only used during the first initialization +export JENKINS_SKIP_JKS="${JENKINS_SKIP_JKS:-yes}" # only used during the first initialization export JENKINS_ENABLE_SWARM="${JENKINS_ENABLE_SWARM:-no}" export JENKINS_CERTS_DIR="${JENKINS_CERTS_DIR:-${JENKINS_HOME}}" -export JENKINS_KEYSTORE_PASSWORD="${JENKINS_KEYSTORE_PASSWORD:-bitnami}" +export JENKINS_KEYSTORE_PASSWORD="${JENKINS_KEYSTORE_PASSWORD:-}" export JENKINS_OPTS="${JENKINS_OPTS:-}" # Jenkins credentials export JENKINS_USERNAME="${JENKINS_USERNAME:-user}" # only used during the first initialization -export JENKINS_PASSWORD="${JENKINS_PASSWORD:-bitnami}" # only used during the first initialization +export JENKINS_PASSWORD="${JENKINS_PASSWORD:-}" # only used during the first initialization export JENKINS_EMAIL="${JENKINS_EMAIL:-user@example.com}" # only used during the first initialization export JENKINS_SWARM_USERNAME="${JENKINS_SWARM_USERNAME:-swarm}" # only used during the first initialization export JENKINS_SWARM_PASSWORD="${JENKINS_SWARM_PASSWORD:-}" # only used during the first initialization diff --git a/bitnami/jenkins/2/debian-12/rootfs/opt/bitnami/scripts/libjenkins.sh b/bitnami/jenkins/2/debian-12/rootfs/opt/bitnami/scripts/libjenkins.sh index 64e4c2f1d0df..f5926e731e92 100644 --- a/bitnami/jenkins/2/debian-12/rootfs/opt/bitnami/scripts/libjenkins.sh +++ b/bitnami/jenkins/2/debian-12/rootfs/opt/bitnami/scripts/libjenkins.sh @@ -100,7 +100,6 @@ jenkins_cli_execute() { local -r jenkins_url="http://127.0.0.1:${http_port}" local -r args=("-jar" "${cli_jar}" "-s" "$jenkins_url" "-auth" "${JENKINS_USERNAME}:${JENKINS_PASSWORD}" "$@") - debug "Executing command: java ${args[*]}" if am_i_root; then debug_execute run_as_user "$JENKINS_DAEMON_USER" java "${args[@]}" else @@ -179,6 +178,7 @@ jenkins_validate() { # Validate credentials check_empty_value "JENKINS_PASSWORD" + ! is_boolean_yes "$JENKINS_SKIP_JKS" && check_empty_value "JENKINS_KEYSTORE_PASSWORD" if [[ "${#JENKINS_PASSWORD}" -lt 6 ]]; then print_validation_error "The admin password must be at least 6 characters long. Set the environment variable JENKINS_PASSWORD with a longer value" fi @@ -223,15 +223,16 @@ jenkins_initialize() { info "Creating init script" ensure_dir_exists "${JENKINS_HOME}/init.groovy.d" jnlp_port="${JENKINS_JNLP_PORT_NUMBER:-"$JENKINS_DEFAULT_JNLP_PORT_NUMBER"}" render-template "$init_jenkins_groovy_tpl" >"${JENKINS_HOME}/init.groovy.d/init-jenkins.groovy" + # shellcheck disable=SC2064 + trap "rm -f ${JENKINS_HOME}/init.groovy.d/init-jenkins.groovy" RETURN ERR INT TERM jenkins_start_bg # Configure host ! is_empty_value "$JENKINS_HOST" && jenkins_configure_host "$JENKINS_HOST" # Rotate the logs in Jenkins to clean the Jenkins warnings before actually configuring the app jenkins_stop # Generate jenkins.jks - "${JAVA_HOME}/bin/keytool" -genkey -keyalg RSA -keypass "${JENKINS_KEYSTORE_PASSWORD}" -storepass "${JENKINS_KEYSTORE_PASSWORD}" -keystore "${JENKINS_CERTS_DIR}/jenkins.jks" -dname "CN=${JENKINS_HOST}, O=${JENKINS_HOST}" -alias "${JENKINS_HOST}" + ! is_boolean_yes "$JENKINS_SKIP_JKS" && "${JAVA_HOME}/bin/keytool" -genkey -keyalg RSA -keypass "${JENKINS_KEYSTORE_PASSWORD}" -storepass "${JENKINS_KEYSTORE_PASSWORD}" -keystore "${JENKINS_CERTS_DIR}/jenkins.jks" -dname "CN=${JENKINS_HOST}, O=${JENKINS_HOST}" -alias "${JENKINS_HOST}" mv "$JENKINS_LOG_FILE" "${JENKINS_LOGS_DIR}/jenkins.firstboot.log" - rm "${JENKINS_HOME}/init.groovy.d/init-jenkins.groovy" else info "Skipping Bitnami initialization" fi diff --git a/bitnami/jenkins/README.md b/bitnami/jenkins/README.md index bad25dd455a1..082ad442a538 100644 --- a/bitnami/jenkins/README.md +++ b/bitnami/jenkins/README.md @@ -97,12 +97,13 @@ The following tables list the main variables you can set. | `JENKINS_HOST` | Jenkins hostname. | `nil` | | `JENKINS_FORCE_HTTPS` | Enable serving Jenkins through HTTPS instead of HTTP. | `no` | | `JENKINS_SKIP_BOOTSTRAP` | Whether to perform initial bootstrapping for the application. | `no` | +| `JENKINS_SKIP_JKS` | Whether to generate JKS during initialization. | `yes` | | `JENKINS_ENABLE_SWARM` | Enable the Jenkins Swarm configuration. | `no` | | `JENKINS_CERTS_DIR` | Password of keystore. | `${JENKINS_HOME}` | -| `JENKINS_KEYSTORE_PASSWORD` | Password of keystore. | `bitnami` | +| `JENKINS_KEYSTORE_PASSWORD` | Password of keystore. | `nil` | | `JENKINS_OPTS` | Jenkins launcher parameters. | `nil` | | `JENKINS_USERNAME` | Jenkins admin user name. | `user` | -| `JENKINS_PASSWORD` | Jenkins admin user password. | `bitnami` | +| `JENKINS_PASSWORD` | Jenkins admin user password. | `nil` | | `JENKINS_EMAIL` | Jenkins admin user e-mail address. | `user@example.com` | | `JENKINS_SWARM_USERNAME` | Jenkins user for Swarm access name . | `swarm` | | `JENKINS_SWARM_PASSWORD` | Jenkins user for Swarm access password. | `nil` | diff --git a/bitnami/jenkins/docker-compose.yml b/bitnami/jenkins/docker-compose.yml index 9592aa82f1b9..096287440a9b 100644 --- a/bitnami/jenkins/docker-compose.yml +++ b/bitnami/jenkins/docker-compose.yml @@ -8,6 +8,7 @@ services: - '80:8080' environment: - JENKINS_PASSWORD=bitnami + - JENKINS_KEYSTORE_PASSWORD=bitnami volumes: - 'jenkins_data:/bitnami/jenkins'