【问题标题】:reconfigure timezone inside docker not working在docker内部重新配置时区不起作用
【发布时间】:2016-12-02 01:56:02
【问题描述】:

首先,我在我的 Dockerfile 中配置时区如下,但它失败了(当我进入 docker 容器并执行“日期”时,只是为了获得 Etc/UTC 时间)。

   FROM selenium/standalone-firefox:3.0.1-aluminum
   USER root
   RUN echo "Asia/Shanghai" > /etc/timezone
   RUN dpkg-reconfigure -f noninteractive tzdata

然后,我再次尝试如下,似乎 'dpkg-reconfigure' 重置了 /etc/timezone.那么到底怎么了?

补充: 在我按照 BMitch 建议的方法进行操作后,它确实向前迈出了一步,但出现了另一个令人困惑的问题:docker 容器内的 date 命令打印了错误的时间。

【问题讨论】:

标签: linux ubuntu docker timezone


【解决方案1】:

Selenium 的映像基于 Ubuntu,Ubuntu 改变了非交互式 tzdata 重新配置从标准 Debian 方法的行为。请改用以下内容:

FROM selenium/standalone-firefox:3.0.1-aluminum
USER root
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
 && dpkg-reconfigure -f noninteractive tzdata

更多详情请见this bug report

【讨论】:

  • 是的,这有助于向前迈出一步。然后是另一个问题:我在正在运行的 docker 容器中执行“日期”,它仍然显示错误的时间。 root@3676e853f0c0:/# dpkg-reconfigure -f noninteractive tzdata Current default time zone: 'Asia/Shanghai' Local time is now: Fri Dec 2 11:33:11 CST 2016. Universal Time is now: Fri Dec 2 03:33:11 UTC 2016. root@3676e853f0c0:/# date Thu Dec 1 19:33:15 PST 2016
  • 确保您的环境中没有定义 TZ (unset TZ)。重新配置后,您还应该看到 /etc/timezone 包含“亚洲/上海”。
  • 完美!非常感谢你。
猜你喜欢
  • 2018-09-27
  • 1970-01-01
  • 1970-01-01
  • 2016-01-12
  • 1970-01-01
  • 2017-07-30
  • 2014-03-14
  • 2020-04-27
  • 2019-02-14
相关资源
最近更新 更多