修正 Docker for mac 时区问题

在容器中修正时间没有用,因为宿主机是 Alpine moby 虚拟机,而非你的 mac。

应该执行 sudo ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

然而 moby 缺少 /usr/share/zoneinfo/ 目录。 需要 apk add tzdata 来安装时区信息。(apk 是 alpine 的包管理器)。参考 https://wiki.alpinelinux.org/wiki/Setting_the_timezone 然而我遇到了 Bad file descriptor 的报错,所有 apk 操作都有这个错误。 解决办法是执行 setup-apkcache,重置 apk 的缓存。

setup-apkcache
apk update
apk add tzdata

找不到 setup-apkcache 命令?

执行 apk add alpine-conf 来安装 /sbin/setup-* 脚本。参考这篇短文

然而

因为 Docker for mac 是跑在虚拟机里,如果没有持久化数据,重启之后你所做的修改就都没了。然而我还不知道怎么保存数据。