如何使用Testcontainers执行命令退出代码?

时间:2017-10-17 18:53:49

标签: docker-java testcontainers

使用GenericContainer#execInContainer我只能获得stdout或stderr。

有没有办法让退出代码执行命令?

我不能依赖stderr中文本的存在。我执行的应用程序将一些信息输出到stderr但是以代码0退出。

2 个答案:

答案 0 :(得分:4)

execInContainer只是docker-java中execCreateCmd/execStartCmd的快捷方式。不幸的是,他们的API没有提供获取退出代码的方法。

但是你可以使用内置的shell功能,只需将代码作为stdout / stderr的一部分返回:

$ sh -c 'false; echo "ExitCode=$?"'
ExitCode=1

其中false是您的命令

答案 1 :(得分:0)

您可以使用inspectExecCmd(execId)获取有关已执行命令的信息,还可以从inspectExecCmd的响应中获取退出代码