如何获取使用 Testcontainer 执行的命令退出代码?
How can I Get command exit code executed with Testcontainers?
使用 GenericContainer#execInContainer
我只能得到 stdout 或 stderr。
有什么方法可以获取已执行命令的退出代码?
我不能依赖 stderr 中的文本。我执行的应用程序将一些信息打印到 stderr,但退出时代码为 0。
execInContainer
只是从 docker-java 到 execCreateCmd/execStartCmd
的快捷方式。不幸的是,他们的 API 没有提供获取退出代码的方法。
但您可以使用内置的 shell 功能,只需 return 代码作为 stdout/stderr 的一部分:
$ sh -c 'false; echo "ExitCode=$?"'
ExitCode=1
其中 false
是您的命令
您可以使用inspectExecCmd(execId)
获取有关已执行命令的信息,也可以从inspectExecCmd
的响应中获取退出代码
使用 GenericContainer#execInContainer
我只能得到 stdout 或 stderr。
有什么方法可以获取已执行命令的退出代码?
我不能依赖 stderr 中的文本。我执行的应用程序将一些信息打印到 stderr,但退出时代码为 0。
execInContainer
只是从 docker-java 到 execCreateCmd/execStartCmd
的快捷方式。不幸的是,他们的 API 没有提供获取退出代码的方法。
但您可以使用内置的 shell 功能,只需 return 代码作为 stdout/stderr 的一部分:
$ sh -c 'false; echo "ExitCode=$?"'
ExitCode=1
其中 false
是您的命令
您可以使用inspectExecCmd(execId)
获取有关已执行命令的信息,也可以从inspectExecCmd