我在Mac上使用Docker 19.03,但是如果有跨平台的解决方案,那就太好了。我有这个Dockerfile ...
FROM microsoft/mssql-server-linux:latest
RUN apt-get update
RUN apt-get install unzip -y
ENV TZ=EDT
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
RUN date
...
这似乎没有完成设置我的时区的工作,因为打印出来的内容显示为“EDT”,但仍显示UTC时间 ---> d8cf39550832
Step 4/13 : ENV TZ=EDT
---> Running in 8996c46391f4
Removing intermediate container 8996c46391f4
---> e01cb9586f4c
Step 5/13 : RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
---> Running in 1972412de76f
Removing intermediate container 1972412de76f
---> fffba690cf2b
Step 6/13 : RUN date
---> Running in 9921f49b5353
Tue Jul 28 20:15:57 EDT 2020
运行该命令时,实际的东部标准时间为16:15:57。将时区设置为东部标准的正确方法是什么?我也尝试过“America / New_York”,但没有做得更好。
最佳答案
SQL Server镜像基于Ubunutu 16.04(根据its DockerHub reference page)。根据this question的答案,Ubuntu 16.04中存在一个设置时区的错误。
尝试将docker文件更改为:
ENV TZ=America/New_York
RUN ln -fs /usr/share/zoneinfo/$TZ /etc/localtime && dpkg-reconfigure -f noninteractive tzdata
您绝对应该设置America/New_York
,而不是EST
或EDT
。
关于sql-server - 如何为Docker容器设置时区?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63142193/