相关疑难解决方法(0)

使用docker-compose设置容器时区

我有一个docker-compose文件运行一些Dockerfiles来创建我的容器.我并不想修改自己的Dockerfiles设置时区,因为他们可以通过我的团队成员随时更改,我有一个码头工人,compose.override.yml文件,以使当地环境的变化.但是,我的一个容器(基于Selenium的容器)似乎没有拉出主机时区,这对我来说是个问题.基于此我想在我的所有容器上强制执行时区.我现在在我的Dockerfiles中

ENV TZ=America/Denver
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
Run Code Online (Sandbox Code Playgroud)

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

containers docker dockerfile docker-compose devops

20
推荐指数
4
解决办法
3万
查看次数

配置mysql docker容器的时区

我有一个mysql 5.7 docker容器.当我运行mysql命令时:

SELECT now();
Run Code Online (Sandbox Code Playgroud)

它显示了我当前时间-3小时的时间(这是合乎逻辑的).我想在配置文件中设置时区.按照https://hub.docker.com/_/mysql/中的文档,我在我的docker-compose.yml文件中创建一个卷,如下所示:

mysqldb:
    image: mysql:5.7.21
    container_name: mysql_container
    ports:
      - "3306:3306"
    volumes:
      - ./.docker/etc/mysql/custom.cnf:/etc/mysql/conf.d/custom.cnf
Run Code Online (Sandbox Code Playgroud)

当我浏览容器内的文件时,文件custom.cnf就在那里.在该文件中,我尝试了一些我找到的解决方案:

[mysqld]
default_time_zone='Europe/Sofia'
Run Code Online (Sandbox Code Playgroud)

或者是一个不太优雅的妥协解决方案,因为该区域必须每年更换两次(夏季/冬季):

[mysqld]
default_time_zone='+03:00'
Run Code Online (Sandbox Code Playgroud)

但都没有用.我感觉这个文件根本没有被mysql加载,因为如果我尝试将无效配置放在那里也没有任何事情发生(容器正常启动).有什么建议吗?

mysql my.cnf docker docker-compose

6
推荐指数
3
解决办法
9405
查看次数

标签 统计

docker ×2

docker-compose ×2

containers ×1

devops ×1

dockerfile ×1

my.cnf ×1

mysql ×1