我很惊讶似乎没有简单的跨平台方法来将主机的时区与运行时的Docker容器同步。因此,容器中的时区不应该在构建时设置,而是在它启动时设置。到目前为止,我发现了以下两个选项:
a)docker run -v /etc/timezone:/etc/timezone:ro
b)docker run -e "TZ=Asia/Kolkata"
对于我的用例,两者都是禁止的。 a)仅适用于Linux,因为Windows和macOS上没有/etc/timezone
。 b)要求用户手动设置所需的时区(即与主机上的时区相同)。
这些都是明智的选择吗?
为了完整起见,在Dockerfile
的构建时间执行此操作,您将使用以下内容:
RUN sudo echo "America/New_York" > /etc/timezone
RUN sudo dpkg-reconfigure -f noninteractive tzdata
附注:这是https://forums.docker.com/t/synchronize-timezone-from-host-to-container/39116的副本,但据我所知,并非每个拥有Docker专有技术的人都有帐户。