永久修改以容器化方式運行的Jenkins系統時間

1. 用dockerfile修改官方鏡像

加上環境變量

ENV TZ=Asia/Shanghai

或者

修改容器啓動腳本/usr/local/bin/jenkins.sh,給java傳入啓動參數:

-Duser.timezone=Asia/Shanghai

-Dorg.apache.commons.jelly.tags.fmt.timeZone=Asia/Shanghai

2.docker run的時候修改

運行docker run的時候加上下面三種選項中的一種:

-e JAVA_OPTS='-Duser.timezone=Asia/Shanghai' 
-e TZ='Asia/Shanghai'
-e JAVA_OPTS='-Dorg.apache.commons.jelly.tags.fmt.timeZone=Asia/Shanghai'

或者

docker run 命令最後添加上面的JAVA_OPTS參數中的一種,這是直接傳入給容器內 /usr/local/bin/jenkins.sh(ENTRYPOINT) 的參數,比如:

-Duser.timezone=Asia/Shanghai

或者

用bind mounts把修改好的jenkins.sh替換進容器內文件 /usr/local/bin/jenkins.sh 。注意:由於容器內是uid 1000的用戶運行這個腳本,記得加上執行權限:chmod o+x jenkins.sh

3.如果啓動容器的時候沒有加參數,想要永久修改時區

可以在JENKINSHOMEinit.groovyJENKINS_HOME目錄下創建文件init.groovy文件,或者創建目錄JENKINS_HOME/init.groovy.d/,並在這個目錄下面創建任何以.groovy結尾的文件,在任意一個上述文件內填入下面內容即可,這些文件內容會在jenkins每次啓動後加載。

System.setProperty('org.apache.commons.jelly.tags.fmt.timeZone', 'Asia/Shanghai')
# cat 命令生成文件
cat > init.groovy << _EOF_
System.setProperty('org.apache.commons.jelly.tags.fmt.timeZone', 'Asia/Shanghai')
_EOF_

(不建議在這時修改啓動腳本 /usr/local/bin/jenkins.sh 因爲每次更換容器都要重啓修改一次)


作者:melasto
鏈接:https://www.jianshu.com/p/47d767cf893d
來源:簡書

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章