当前位置: 首页 > 知识库问答 >
问题:

使用docker compose设置容器时区

翟永春
2023-03-14

我有一个运行几个Dockerfile来创建我的容器的docker撰写文件。我不想编辑我的Dockerfile来设置时区,因为它们可以随时由我的团队成员更改,我有一个docker-compose.override.yml文件来进行本地环境更改。然而,我的一个容器(基于硒的容器)似乎没有拉动主机时区,这给我带来了问题。基于此,我想在所有容器上强制执行时区。在我的Dockerfile里我知道

ENV TZ=America/Denver
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

一切正常。如何在docker compose语法中复制相同的命令?

共有3个答案

段干高歌
2023-03-14

最简单的解决方案是像这样的docker-compose.yml的共享量

ipchanger:
  image: codertarasvaskiv/ipchanger:raspberry
  volumes:
    - "/etc/localtime:/etc/localtime:ro"
  • ro-表示容器只能从主机的/etc/localtime读取
彭宜人
2023-03-14
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在这里很重要,可以确保我的主应用程序接收Ctrl-C(SIGINT/SIGKILL)。

许博
2023-03-14

这是一个简单的解决方案:

environment:
  - TZ=America/Denver
 类似资料:
  • 问题内容: 我有一个运行一些Dockerfile的docker- compose文件来创建我的容器。我不想编辑Dockerfile来设置时区,因为它们可能会随时被团队成员更改,并且我有一个docker- compose.override.yml文件可以进行本地环境更改。但是,我的一个容器(基于Selenium的容器)似乎没有拉主机时区,这给我带来了麻烦。基于此,我想在所有容器上实施时区。现在在我的

  • 要求: 基于Ubuntu14.04的docker实例设置,其中一个实例充当所有其他实例的网络流量网关。。。 为此类设置创建docker组合文件... 所有这些实例都需要在自己的专用docker网络和默认docker桥上运行。。。 创建了Dockerfile docker-compose.yml 其中testenginer_main是我使用Dockerfile install 生成的图像文件,我检查

  • 问题内容: 我正在关注本教程。 就我而言,我在Docker环境中运行,并且有一个受保护的站点(即https:// localhost )。这需要安全的SSL通信。 我调整了 网络 和 celery 容器以确保安全连接。 但是我不知道如何配置Redis容器以实现与ssl的安全连接。 请注意,当我在 Web 和 celery 容器中没有ssl连接的情况下运行时,连接就可以了。 如何使用SSL配置和运行

  • 我已经在这方面研究了很多线程,看来我们无法通过编程方式更改浏览器的时区。我们有moment-timezone.js库,我们可以使用它来设置时区,但这只适用于它的对象。如果您仍然使用javascript本机new Date(),那么您仍然会在浏览器时区中获得Date。 我有一个angularjs应用程序,在那里我使用kendo Ui小部件和momentjs库来处理日期。 我将不得不在代码中各处独立处

  • 我目前有一个带有docker容器的EC2,但有人告诉我,简单地运行它是不够好的,EC2容器服务可以提供更多的功能,包括自动重启docker和保持日志记录。 我试图按照文档设置EC2容器服务,但我发现命名约定相当混乱。 通过将aws ecr get-login命令从控制台粘贴到终端窗口中,检索docker登录命令,您可以使用该命令对docker客户端进行身份验证。 这个“控制台”和“终端”指的是什么

  • 问题内容: 正如这个问题的标题所示,我想使用docker(docker.io)设置容器的最大磁盘/内存和cpu使用率。 有没有办法只使用docker来做到这一点? 问题答案: 内存/ CPU Docker现在支持更多资源分配选项: 通过-c标志分配CPU 内存限制,通过-m标志 特定的CPU内核,通过–cpuset标志 请查看更多详细信息。 如果使用lxc后端(),则可以指定更细粒度的资源分配方案