在我们的 J2EE 项目中,我们通过从我们的 java 代码中调用sjourdan/ffmpeg docker来进行一些视频转换,这依赖于docker-java。
现在,它看起来像这样(为简洁起见非常简化):
CreateContainerCmd createCommand = dockerClient.createContainerCmd("sjourdan/ffmpeg")
.withVolumes(aVolume)
.withBinds(aBind)
.withCmd("a lot of options about the conversion itself, codec, ratio, …");
CreateContainerResponse container = createCommand.exec();
dockerClient.startContainerCmd(container.getId()).exec();
// vanilla implementation of ResultCallback
MyResultCallback callback = new MyResultCallback();
dockerClient.waitContainerCmd(container.getId()).exec(callback);
事实是,当然,线程会在此之后继续运行,而无需等待回调被回调。
我们应该如何强制线程等到回调被调用,通知我们docker命令完全结束?
另一方面,如果有人知道如何使用 docker-java--rm
向播放的docker run
命令添加参数,我很感兴趣。