1. Dockerfile
FROM jenkins/jenkins:2.411-jdk11
USER root
#以下生成密鑰方式為舊格式,因為新格式暫不能被"Publish over SSH--->Jenkins SSH Key"功能識別
RUN ssh-keygen -q -m PEM -t rsa -b 2048 -N '' -f /root/.ssh/id_rsa
ADD ./apache-maven-3.6.3-bin.tar.gz /usr/local/
ADD ./jdk1.8.0_221.tar.gz /usr/local
#配置maven全局環(huán)境變量
RUN echo "export MAVEN_HOME=/usr/local/apache-maven-3.6.3 \n export PATH=\$MAVEN_HOME/bin:\$PATH:/opt/java/openjdk/bin" >> /etc/profile
RUN echo "source /etc/profile" >> /root/.bashrc
2. docker-compose
version: "3.5"
services:
jenkins:
image: harbor.od.com/jenkins/jenkins-ssh-mvnset:v2.411
ports:
- 8081:8080
- 50000:50000
restart: "always"
container_name: jenkins
environment:
JAVA_OPTS: "-Duser.timezone=Asia/Shanghai"
JAVA_OPTS: "-server -Xms512m -Xmx1024m -XX:PermSize=256m -XX:MaxPermSize=512m"
# 配置訪問路徑,不然訪問404
JENKINS_OPTS: "--prefix=/jenkins"
JENKINS_ARGS: "--prefix=/jenkins"
volumes:
- /etc/localtime:/etc/localtime:ro
- /docker-compose/jenkins/jenkins_home:/var/jenkins_home
- /var/run/docker.sock:/var/run/docker.sock
- /usr/bin/docker:/usr/bin/docker
- /docker-compose/jenkins/shell:/shell
privileged: true
3. 定時構(gòu)建(類似于crontab)
分散負(fù)載應(yīng)該用 ‘H 15 * * *’ 而不是 ‘46 15 * * *
提示"H"的意思是哈希,比如有很多工程都在同一時間去定時構(gòu)建,系統(tǒng)認(rèn)為會對負(fù)載有一定影響,使用"H"同樣
還是會生效,就是避開系統(tǒng)高峰期執(zhí)行,如果某工程必須在某一個點執(zhí)行可以用"H(30-31) 15 * * *"來表示
4. 問題現(xiàn)象
當(dāng)我們運行容器后,設(shè)置了定時任務(wù)但是發(fā)現(xiàn)執(zhí)行時間于本地時間不一致,我設(shè)置17點定時構(gòu)建,
但是實際的執(zhí)行是在凌晨
5. 處理方式
5.1 查看jenkins環(huán)境內(nèi)容:系統(tǒng)管理–> 系統(tǒng)信息–> user.timezone查看時區(qū)為(Etc/UTC)
文章來源:http://www.zghlxwxcb.cn/news/detail-615759.html
Etc/UTC是協(xié)調(diào)世界時(Coordinated Universal Time)的一個時區(qū),
也被稱為格林威治平均時間(Greenwich Mean Time)或世界標(biāo)準(zhǔn)時間。
Asia/Shanghai則是中國上海所在的時區(qū),在東八區(qū),UTC+8(北京時間)。
Etc/UTC時區(qū)表示的是全球的標(biāo)準(zhǔn)時間,沒有時區(qū)偏移和夏令時調(diào)整,
Asia/Shanghai時區(qū)表示的是中國上海的本地時間,在東八區(qū),不考慮夏令時。
5.2 掛載/etc/timezone文件至容器
#需要確認(rèn)宿主機(jī)的timezone時區(qū)是否東八區(qū)
[root@zabbix jenkins]# cat /etc/timezone
Asia/Shanghai
#docker-compose增加掛載文件,定時構(gòu)建就和本地時間保持一致了
volumes:
- /etc/timezone:/etc/timezone
文章來源地址http://www.zghlxwxcb.cn/news/detail-615759.html
到了這里,關(guān)于容器部署jenkins定時構(gòu)建于本地時間不一致的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!