最近在研究 jenkins 做流水線打包,費了一番周折終於成功了。但是卻發現時間不對。我們現在的項目打包依賴時間戳,這就有可能會有沖突,而且如果該鏡像包有問題,就不方便定位了。
因此在網上尋找了一番,找到了這個解決方案,一開始先直接在內部跑命令,時間正常了,第二天上班過來打包一看,時間又不對了。考慮一下,決定還是從 docker run 的時候開始入手。
我現在用的連接
1 docker run --restart=always -u root -d -p 8088:8080 -p 50000:50000 -e JAVA_OPTS=-Duser.timezone=Asia/Shanghai -v /etc/localtime:/etc/localtime -v jenkins-data:/var/jenkins_home -v /var/run/docker.sock:/var/run/docker.sock jenkinsci/blueocean
我沒有直接用參考文章里最后的命令,因為我的工作環境是 macOS,直接用--network=host 無效,mac 和 windows 環境都需要指定端口,所以把需要的語句直接加到我現成的命令中即可。
關鍵語句是這2條:
1 -e JAVA_OPTS=-Duser.timezone=Asia/Shanghai 2 -v /etc/localtime:/etc/localtime
第一條是指定時區,第二條是映射本地時間。
重新運行后,現在時間又恢復正常了。過兩天再看看會不會反復。