私たちの J2EE プロジェクトでは、 docker -javaに依存して、Java コードからsjourdan/ffmpeg dockerを呼び出して、ビデオ変換を行っています。
今のところ、これは次のようになります (簡潔にするために非常に単純化されています)。
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
、私は興味があります。