Добавление ответа, чтобы охватить ситуацию при запуске jenkins в док-контейнере под CentOS . В этом случае параметры могут быть не установлены в / etc / sysconfig / jenkins (в зависимости от сценариев запуска службы jenkins). Сценарий jenkins.sh используется для запуска службы jenkins. Этот сценарий jenkins.sh аналогичен сценарию, используемому в проекте jenkins-inside-docker, поэтому этот ответ, будем надеяться, будет полезен всем создателям jenkins в проектах docker, основанных на этом.
https://github.com/jenkinsci/docker/blob/master/jenkins.sh
Ниже мы получаем TZ, например, Europe / Dublin, и передаем -e $ TZ в docker run, чтобы у нас был скрипт, который записывает это в / etc / timezone или links / etc / localtime, но важно передать эти два аргумента в JAVA_OPTS: "-Dorg.apache.commons.jelly.tags.fmt.timeZone = $ TZ -Duser.timezone = $ TZ". Сценарий jenkins.sh передает их в командную строку, которая запускает процесс jenkins.
На хосте docker при создании контейнера пример команды docker run:
TZFILE=$(readlink -f /etc/localtime)
TZ=$(echo $TZFILE|sed s#.*zoneinfo\/##)
TZARG=" -e $TZ "
ID=$(docker run $TARG \
-d \
--user=jenkins \
--name jenkins-${USER} \
--restart always \
-p $HOST_IP:$JENKINS_PORT:${JENKINS_PORT_INTERNAL} \
-p $HOST_IP:$JENKINS_SLAVE_PORT:50000 \
$TZARG \
--env JAVA_OPTS="-Dhudson.Main.development=true \
-Dhudson.footerURL=$JENKINS_URL \
-Dorg.apache.commons.jelly.tags.fmt.timeZone=$TZ -Duser.timezone=$TZ \
-Xms800M -Xmx800M -Xmn400M \
" \
--env JENKINS_HOME=/var/jenkins_home \
-v $JENKINS_DIR:/var/jenkins_home \
$VARGS \
$ADDITIONALARGS \
$IMAGE \
/bin/tini /usr/local/bin/jenkins.sh \
)
echo "INFO: container ID:$ID" |tee JENKINS.CONTAINER.ID
Опции передавались в переменной docker в команде запуска docker, а затем передавались команде запуска jenkins.