一尘不染

使用docker-compose设置容器时区

docker

我有一个运行一些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语法复制相同的命令?


阅读 2016

收藏
2020-06-17

共1个答案

一尘不染

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)很重要。

2020-06-17