如何使用Docker compose将时间强制放入Docker容器
这是我的docker文件如何使用Docker compose将时间强制放入Docker容器,docker,docker-compose,Docker,Docker Compose,这是我的docker文件 version: '2' services: client: build: . container_name: client depends_on: - mysql environment: MYSQL_USER: api MYSQL_PASSWORD: api MYSQL_ROOT_PASSWORD: root mysql: image: mysql:5.7 env
version: '2'
services:
client:
build: .
container_name: client
depends_on:
- mysql
environment:
MYSQL_USER: api
MYSQL_PASSWORD: api
MYSQL_ROOT_PASSWORD: root
mysql:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_USER: api
MYSQL_PASSWORD: api
ports:
- "3306:3306"
我正在客户端容器(运行debian)上运行测试。测试取决于日期,因为MySQL数据是在给定日期创建的。
因此,我想在容器(两个容器)中强制执行日期,以便客户端中的
date
和MySQL中的now()
返回给定的较旧日期
编辑:当我运行docker容器时,它会获取linux映像和数据库的当前时间。是否有任何方法可以将这些值设置为2014.01.01(某个特定日期),该值不变。因此,容器内的行为始终相同Docker容器从主机继承系统日期-您不能在容器内手动更改它,例如,这将无法生成:
FROM ubuntu
RUN date -s '2014-01-01 00:00:01'
您可以做的是在容器内安装一个NTP客户机,并将其指向与主机不同的NTP服务器。然后,您需要做的就是编写一个存根NTP服务器,它总是返回一个固定的日期和时间…如果您需要一个特定的时区,而不是一个特定的时间,您可以使用TZ变量 docker运行--env TZ=${TIMEZONE}
我想知道一些反馈意见,为什么投票被否决?我想强制执行时间。因此,容器总是以相同的日期/时间开始。