time.LoadLocation 正常工作,但在我的 docker 实例上抛出错误!我如何解决它?

time.LoadLocation works regularly but throws an error on my docker instance! How do I fix it?

time.LoadLocation 正常工作,但在我的 docker 实例上抛出错误!我该如何解决?

我运行

t, err := time.LoadLocation("America/New_York")

它 returns 是一个错误,即使它在我的电脑和 play.golang.org (https://play.golang.org/p/4VHlaku26T3)

上工作得很好

然而,当我在我的 docker 实例上 运行 它时,我得到一个错误返回 unknown time zone America/New_York

为什么它检测不到我请求的时区?

Linux Alpine 本身没有内置时区信息。 您需要更新 Dockerfile 才能获取该信息。

并将命令 apk --no-cache add tzdata 添加到 运行 行

例如,对我来说,我有一行如下所示

RUN apk update && apk add bash && apk --no-cache add tzdata

这解决了我的问题。