我有一个运行一些Dockerfile的docker-compose文件来创建我的容器。我不想编辑Dockerfile来设置时区,因为它们可能会随时被团队成员更改,并且我有一个docker-compose.override.yml文件可以进行本地环境更改。但是,我的一个容器(基于Selenium的容器)似乎没有拉主机时区,这给我带来了麻烦。基于此,我想在所有容器上实现时区。现在在我的Dockerfiles中
ENV TZ=America/Denver
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
而且一切正常。如何使用docker-compose语法复制相同的命令?
最佳答案
version "2"
services:
serviceA:
...
environment:
TZ: "America/Denver"
command: >
sh -c "ln -snf /usr/share/zoneinfo/$TZ /etc/localtime &&
echo $TZ > /etc/timezone &&
exec my-main-application"
编辑:问题并没有要求,但我刚刚添加了
exec my-main-application
以显示如何指定主要过程。此处的exec
很重要,以确保my-main-application
接收Ctrl-C(SIGINT/SIGKILL)。关于docker - 使用docker-compose设置容器时区,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39172652/