如何在Docker容器中使用伪时间启动tomcat?

我使用docker在tomcat中部署Java Web应用程序。 出于testing目的,我想强制系统date到一个特定的值。

使用Docker不可能在不影响主机date的情况下更改容器date。 所以我想用Faketime 。 这个工具允许操纵给定命令的系统date。 例如 :

$ date Web Jul 1 09:57:51 UTC 2015 $ faketime "2008-12-24" date Web Dec 24 00:00:00 UTC 2008 

当我使用它启动tomcat时,我得到了一个sem_open错误:

 $ faketime "2008-12-24" /bin/bash -c "/opt/tomcat/bin/catalina.sh start" [...] Tomcat started. $ tail -f /opt/tomcat/logs/catalina.out sem_open: No such file or directory 

任何想法来解决这个问题?

不知道你是否已经解决了这个问题,我执行$ faketime“2016-11-02”/ bin / bash -c“/opt/tomcat/bin/startup.sh start”

那么它会伪造tomcat运行时的date.Hope这个很有用。