sql-server - 如何为Docker容器设置时区?

标签 sql-server docker timezone dockerfile

我在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,而不是ESTEDT

关于sql-server - 如何为Docker容器设置时区?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63142193/

相关文章:

java - 在 Java 中覆盖系统属性(无代码)

c# - 在 C# 中将本地时区转换为 PST 时区

sql-server - 在 nvarchar 列上创建 SQL Server 索引

docker - 在Bluemix中的cf ic登录中检查网络错误

java - 具有时区和 SimpleDateFormat 的不可解析日期

python - Docker 问题 :/bin/sh: pip: not found

杀死容器时,ubuntu 16.04上的docker错误

SQL Server - 查询短路?

sql-server - row_number() 分组依据?

SQL Server 使用 OPENJSON 解析嵌套 json