docker中的模拟时间(-compose)

docker中的模拟时间(-compose),docker,date,time,docker-compose,mocking,Docker,Date,Time,Docker Compose,Mocking,在测试docker映像执行作业的范围内,我需要在其执行期间模拟容器日期,以便进行一些涉及时间的准确测试 环顾互联网,我还没有找到任何解决方案,只有一些可以遵循的路径。 我需要的是一种更改系统日期的方法,无需手动连接到shell,我计划使用docker compose设置测试,并且我希望将日期配置为配置参数 你有过类似的经历吗?你是怎么解决的 第一个问题是更改日期,我只找到了执行此操作的date命令 我正在寻找两种方法: 扩展基本映像并在入口点之前执行日期。 我不觉得为每个容器重新创建一个图像是一

在测试docker映像执行作业的范围内,我需要在其执行期间模拟容器日期,以便进行一些涉及时间的准确测试

环顾互联网,我还没有找到任何解决方案,只有一些可以遵循的路径。
我需要的是一种更改系统日期的方法,无需手动连接到shell,我计划使用docker compose设置测试,并且我希望将日期配置为配置参数

你有过类似的经历吗?你是怎么解决的

第一个问题是更改日期,我只找到了执行此操作的
date
命令

我正在寻找两种方法:

  • 扩展基本映像并在
    入口点之前执行
    日期
    。 我不觉得为每个容器重新创建一个图像是一个问题,但我不喜欢不能“代理”入口点的事实,我发现执行
    date
    命令的唯一方法是用执行它的
    sh
    重新定义入口点,然后调用旧入口点,但它必须“知道”它是什么,我没有找到一种方法来处理基础图像
  • 使用NTP服务器。在这件事上我还不算小,但我想在docker创建的网络中注入一个ntp服务器,将我的模拟日期告知其网络中的其他容器。但我没有找到一种方法,在docker中用假时间配置模拟ntp服务器

  • 目前,我被绊倒了,还有一句“你不能使用NTP服务器,因为blablabla…”会很有帮助,或者如果你有办法的话也会更好

    我实际上无法更改docker容器中的日期。docker时钟与系统时钟同步

    不过,还有其他解决方案:

    根据我对ntp的了解,ntp客户端尝试更新系统时钟。因此,您可能无法使用NTP,因为一个简单的安装将尝试更改系统时钟,然后在docker内部无法这样做。也许有一个ntp客户端进行模拟,但我认为您又回到了同样的问题,您最好在该链接中使用模拟库

    测试时钟偏差很重要(),我也很惊讶互联网上没有更多关于这方面的内容