这是我的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
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_USER: api
MYSQL_PASSWORD: api
ports:
- "3306:3306"
我在客户端容器上运行测试(运行debian)。
测试取决于自定义日期创建MySQL数据以来的日期。
所以,我想强制执行将日期放入容器(两个容器)中,以便客户端中的date
和mysql中的now()
返回给定的较旧日期。
编辑:当我运行docker容器时,它获取当前时间到linux映像以及数据库。有什么办法可以将这些值设置为2014.01.01(某个特定日期),但不会改变。所以容器内的行为总是相同的
答案 0 :(得分:1)
Docker容器从主机继承系统日期 - 您无法在容器内手动更改它,例如这将无法建立:
FROM ubuntu
RUN date -s '2014-01-01 00:00:01'
您可以做的是在容器中安装NTP客户端,并将其指向与主机不同的NTP服务器。然后,您需要做的就是编写一个存根NTP服务器,它始终返回固定的日期和时间......
答案 1 :(得分:0)
如果您需要特定时区而不是特定时间,则可以使用TZ变量
docker run --env TZ = $ {TIMEZONE}
https://en.wikipedia.org/wiki/List_of_tz_database_time_zones