通常的解决方法是安装/etc/localtime
, as in 问题 3359 https://github.com/docker/docker/issues/3359#issuecomment-38134906
$ docker run --rm busybox date
Thu Mar 20 04:42:02 UTC 2014
$ docker run --rm -v /etc/localtime:/etc/localtime:ro busybox date
Thu Mar 20 14:42:20 EST 2014
$ FILE=$(mktemp) ; echo $FILE ; echo -e "Europe/Brussels" > $FILE ; docker run --rm -v $FILE:/etc/timezone -v /usr/share/zoneinfo/Europe/Brussels:/etc/localtime:ro busybox date
/tmp/tmp.JwL2A9c50i
Thu Mar 20 05:42:26 CET 2014
同一个线程提到(尽管对于基于 ubuntu 的图像),但您已经尝试过。
RUN echo Europe/Berlin > /etc/timezone && dpkg-reconfigure --frontend noninteractive tzdata
(And 我之前提到过类似的解决方案 https://serverfault.com/a/683606/783)
另一种选择是构建自己的gliderlabs/docker-alpine https://github.com/gliderlabs/docker-alpine/图像与builder/scripts/mkimage-alpine.bash https://github.com/gliderlabs/docker-alpine/blob/3fe0456981e67f140b0d441e367838105e30fd2e/builder/scripts/mkimage-alpine.bash#L18.
该脚本允许您设置时区 https://github.com/gliderlabs/docker-alpine/blob/3fe0456981e67f140b0d441e367838105e30fd2e/builder/scripts/mkimage-alpine.bash#L47-L48.
[[ "$TIMEZONE" ]] && \
cp "/usr/share/zoneinfo/$TIMEZONE" "$rootfs/etc/localtime"
您可以看到图像生成器脚本用于数字海洋:Alpine Linux https://github.com/bontibon/digitalocean-alpine:
生成Alpine根文件系统
- 确保 Docker 在本地运行。
-
下载并解压gliderlabs/docker-alpine https://github.com/gliderlabs/docker-alpine.
wget -O docker-alpine-master.zip https://github.com/gliderlabs/docker-alpine/archive/master.zip
unzip docker-alpine-master.zip
-
构建构建器 (首先导出正确的时区 https://mm.icann.org/pipermail/tz/2001-April/011541.html).
export TIMEZONE=xxx
docker build -t docker-alpine-builder docker-alpine-master/builder/
-
构建根文件系统(将 v3.3 更改为您要构建的 Alpine 版本)。
docker run --name alpine-builder docker-alpine-builder -r v3.4
-
从容器中复制根文件系统。
docker cp alpine-builder:/rootfs.tar.gz .
一旦你拥有了rootfs.tar.gz
在您自己的文件系统上,您可以使用它(如这里提到 https://hashnode.com/post/how-do-you-build-your-own-docker-image-with-zero-dependencies-cim0utz0g01qygb533ixw7xnf)使用以下 Dockerfile 构建您自己的 Alpine 镜像:
FROM SCRATCH
ADD rootfs.tar.gz /
构建完成后,您可以使用具有正确时区的 Alpine 映像。