Jenkins: задать часовой пояс

By | 10/18/2018
 

По умолчанию Jenkins использует время по UTC, которое -3 часа от Киева, что, конечно, создаёт путаницу в создании cron-задач и при просмотре логов.

Время хоста задано в EEST – но его Jenkins игнорирует.

Проверяем текущие настройки на странице https://ci.jenkins.world/systemInfo:

В документации приводится несколько вариантов, но в нашем случае заработало через JAVA_OPTS.

Jenkins запускается в Docker-контейнере из Docker Compose файла.

Добавляем переменную JAVA_OPTS:

...
services:
  jenkins:
    user: root
    image: jenkins/jenkins:lts
    networks:
      - jenkins
    ports:
      - '8080:8080'
      - '50000:50000'
    volumes:
      - /data/jenkins:/var/lib/jenkins
      - /var/run/docker.sock:/var/run/docker.sock
      - /usr/bin/docker:/usr/bin/docker
      - /usr/lib/x86_64-linux-gnu/libltdl.so.7:/usr/lib/x86_64-linux-gnu/libltdl.so.7
    environment:
      - JENKINS_HOME=/var/lib/jenkins
      - JENKINS_JAVA_OPTIONS=-Dorg.jenkinsci.plugins.durabletask.BourneShellScript.HEARTBEAT_CHECK_INTERVAL=3800
      - JAVA_OPTS=-Duser.timezone=Europe/Kiev
...

Перезапускаем:

systemctl restart jenkins

Проверяем: