如何在docker容器中使用faketime启动tomcat?

如何在docker容器中使用faketime启动tomcat?

我使用docker在tomcat中部署Java web应用程序。出于测试目的,我想强制系统日期为特定值。

使用 Docker 时,无法在不影响主机日期的情况下更改容器日期。因此,我想使用假时间。此工具允许操纵给定命令的系统日期。例如:

$ 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

有什么办法可以解决这个问题吗?

答案1

不确定您是否已经解决了这个问题,我执行 $ faketime "2016-11-02" /bin/bash -c "/opt/tomcat/bin/startup.sh start"

然后它将伪造 tomcat 运行时日期。希望这有用。

相关内容