| #! /bin/bash -e |
| |
| : "${JENKINS_HOME:="/var/jenkins_home"}" |
| touch "${COPY_REFERENCE_FILE_LOG}" || { echo "Can not write to ${COPY_REFERENCE_FILE_LOG}. Wrong volume permissions?"; exit 1; } |
| echo "--- Copying files at $(date)" >> "$COPY_REFERENCE_FILE_LOG" |
| find /usr/share/jenkins/ref/ -type f -exec bash -c '. /usr/local/bin/jenkins-support; for arg; do copy_reference_file "$arg"; done' _ {} + |
| |
| export JENKINSTHEME_CSS_URL=${JENKINSTHEME_CSS_URL:-/userContent/theme/mirantis.css} |
| export JENKINSTHEME_JS_URL=${JENKINSTHEME_JS_URL:-/userContent/theme/mirantis.js} |
| [ -f $JENKINS_HOME/org.codefirst.SimpleThemeDecorator.xml ] || cat /tmp/org.codefirst.SimpleThemeDecorator.xml | envsubst > $JENKINS_HOME/org.codefirst.SimpleThemeDecorator.xml |
| |
| cat << EOF >>/usr/share/jenkins/ref/init.groovy.d/executors.groovy |
| import jenkins.model.* |
| Jenkins.instance.setNumExecutors(${JENKINS_NUM_EXECUTORS:-2}) |
| EOF |
| |
| # if `docker run` first argument start with `--` the user is passing jenkins launcher arguments |
| if [[ $# -lt 1 ]] || [[ "$1" == "--"* ]]; then |
| |
| # read JAVA_OPTS and JENKINS_OPTS into arrays to avoid need for eval (and associated vulnerabilities) |
| java_opts_array=() |
| while IFS= read -r -d '' item; do |
| java_opts_array+=( "$item" ) |
| done < <([[ $JAVA_OPTS ]] && xargs printf '%s\0' <<<"$JAVA_OPTS") |
| |
| jenkins_opts_array=( ) |
| while IFS= read -r -d '' item; do |
| jenkins_opts_array+=( "$item" ) |
| done < <([[ $JENKINS_OPTS ]] && xargs printf '%s\0' <<<"$JENKINS_OPTS") |
| |
| exec java "${java_opts_array[@]}" -jar /usr/share/jenkins/jenkins.war "${jenkins_opts_array[@]}" "$@" |
| fi |
| |
| # As argument is not jenkins, assume user want to run his own process, for example a `bash` shell to explore this image |
| exec "$@" |