从gitlab ci管道中,我正在使用Dockerfile创建Docker镜像。我需要将docker镜像中的时区从UTC更改为CST。我已经尝试了几种方法(下面列出),但是我无法改变它。希望有人能指出我正确的方向。
Linux版本:
OS name: "linux", version: "4.15.0-72-generic", arch: "amd64", family: "unix"
从Dockerfile中:
RUN sudo echo "America/Chicago" > /etc/timezone
没用通过前后调用
date
命令,时区保持不变。然后:
ENV TZ=America/Chicago
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
没用
从gitlab-ci文件中:
timedatectl
Failed to create bus connection: No such file or directory
我读到我需要安装dbus ..所以我把它放在Dockerfile中
apt-get install dbus
apt-get: command not found
所以我认为图像可能是基于Alpine的。
apk add --update dbus
timedatectl
Failed to create bus connection: No such file or directory
所以,我很茫然。这很新,不知道还要做什么。
我在期待什么。
当我在此图像中运行的单元测试执行日期功能时,它们不拉UTC,而是拉我设置的新更新的时区。
有什么建议么?
最佳答案
我相信您需要安装软件包tzdata
。在Dockerfile
中使用类似下面的内容:
# Install tzdata
RUN apk add --no-cache tzdata
然后,您应该可以使用环境变量设置时区:
TZ: America/Chicago
关于bash - 强制在Docker镜像中更改时区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59791190/