如何使用Docker compose将时间强制放入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

这是我的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(某个特定日期),该值不变。因此,容器内的行为始终相同

Docker容器从主机继承系统日期-您不能在容器内手动更改它,例如,这将无法生成:

FROM ubuntu
RUN date -s '2014-01-01 00:00:01'

您可以做的是在容器内安装一个NTP客户机,并将其指向与主机不同的NTP服务器。然后,您需要做的就是编写一个存根NTP服务器,它总是返回一个固定的日期和时间…

如果您需要一个特定的时区,而不是一个特定的时间,您可以使用TZ变量

docker运行--env TZ=${TIMEZONE}


我想知道一些反馈意见,为什么投票被否决?我想强制执行时间。因此,容器总是以相同的日期/时间开始。