Dockerfile设置apt-get install tzdata的noninteractive方法

在Ubuntu系统中,执行命令apt-get install -y tzdata以安装tzdata软件包。但是,最近发现,在Ubuntu 18.04 (Bionic Beaver)上无法自动安装该软件包,这里的tzdata版本为2018d-1。

在tzdata 2017的各个版本中(如2017c),安装过程中采用默认的系统时区,所以可以无交互地顺利安装完毕,输出信息如下。

Current default time zone: 'Etc/UTC'
Local time is now:      Wed Apr 25 03:38:23 UTC 2018.
Universal Time is now:  Wed Apr 25 03:38:23 UTC 2018.
Run 'dpkg-reconfigure tzdata' if you wish to change it.

 

但是从tzdata 2018版本开始(如2018d),安装过程中默认采用交互式,即要求输入指定的Geographic areaTime zone,从而必须人工值守进行安装,输出信息如下。

Configuring tzdata
------------------

Please select the geographic area in which you live. Subsequent configuration
questions will narrow this down by presenting a list of cities, representing
the time zones in which they are located.

  1. Africa      4. Australia  7. Atlantic  10. Pacific  13. Etc
  2. America     5. Arctic     8. Europe    11. SystemV
  3. Antarctica  6. Asia       9. Indian    12. US

解决步骤如下:

1. 设置tzdata的前端类型(通过环境变量)

ENV DEBIAN_FRONTEND noninteractive

tzdata的前端类型默认为readline(Shell情况下)或dialog(支持GUI的情况下)。

2. 安装tzdata软件包

apt-get install -y tzdata

此时,采用默认时区Etc/UTC。

3. 建立到期望的时区的链接

ln -fs /usr/share/zoneinfo/America/New_York /etc/localtime

设置时区为America/New_York。

4. 重新配置tzdata软件包,使得时区设置生效

dpkg-reconfigure -f noninteractive tzdata

 

 

参考资料

https://blog.csdn.net/taiyangdao/article/details/80512997

上一篇:win10 映射WebDAV,远程挂载webdav


下一篇:Linux 设置系统时间和时区2.Ubuntu