Jenkins构建的Django应用程序的Docker容器中的错误时间

时间:2017-05-27 11:04:41

标签: python django docker jenkins

我正在比较两个容器时间。一个构建在我的本地机器上,另一个构建在Jenkins服务器上。

我附加了他们两个并尝试了这些命令:

Linux的第一个date功能。结果相同:

Locally running container: Sat May 27 10:47:06 UTC 2017

Container running on Jenkins server: Sat May 27 10:47:28 UTC 2017

第二次python shell。结果相同:

Locally running container: '2017-05-27 10:59:40.005836'

Container running on Jenkins server: '2017-05-27 10:59:35.567902'
Django shell中的

第三datetime.now()./manage.py shell)。结果不同:

Locally running container: '2017-05-27 06:01:52.547923'

Container running on Jenkins server: '2017-05-27 11:01:17.001070'

本地运行容器是正确的,因为在我的Django应用程序中,我将时区设置为America/Chicago,在撰写本文时,这是正确的时间。

詹金斯的那个错了,看起来好像忽略了Django设定的时区。

我不明白为什么。感谢您的帮助

1 个答案:

答案 0 :(得分:1)

解决方案只是安装tzdata。事实证明基本图像没有它。

此软件包提供时区和夏令时数据。

因此,只需将以下内容添加到Dockerfile即可解决问题:

RUN apt-get install tzdata