docker里jenkins修改时区方法

我在k8s里起了一个jenkins项目,镜像使用的是官方的docker镜像

image: jenkins

在使用过程中发现,jenkins的时区不对,使用的是0时区。

然后我在网上找了很多方式,以为通过传递环境变量可以解决,但是都不可行。

最终,我下载了官方镜像的Dockerfile来重新build,在build之前在Dockerfile里添加下列两行,解决

RUN rm -rf /etc/localtime && cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

RUN echo 'Asia/Shanghai' > /etc/timezone

其实归根结底原因是,jenkins官方镜像使用了openjdk,然后openjdk默认不是读取操作系统时区而是读取的/etc/timezone 这个文件的时区设置。

/etc/localtime 是设置操作系统的时区,这两个都统一为东八区亚洲上海就没有问题了。

相关推荐