【发布时间】:2017-11-14 02:40:39
【问题描述】:
在我们的 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 命令中,我很感兴趣。
【问题讨论】:
标签: java docker ffmpeg docker-java