Докер-клиент Spotify: Как получить stdout и stderr запущенного контейнера? - PullRequest
0 голосов
/ 05 мая 2019

Я знаю, что могу создать контейнер с бесконечным циклом:

val containerConfig = ContainerConfig.builder()
    .image(imageName)
    .cmd("sh", "-c", "while :; do sleep 1; done")
    .build()
val container = docker.createContainer(containerConfig)
docker.startContainer(container.id())

И затем выполните команду в этом контейнере, используя docker.execCreate и docker.execStart. Получение stdout и stderr в этом случае не проблема.

Но мне интересно, смогу ли я сделать вещи проще. Я хочу выполнить command так:

val containerConfig = ContainerConfig.builder()
    .image(imageName)
    .cmd(command)
    .build()
val container = docker.createContainer(containerConfig)
docker.startContainer(container.id())

и получите доступ к stdout и stderr. Возможно ли это?

1 Ответ

0 голосов
/ 05 мая 2019

Хорошо, есть способ сделать это:

val containerConfig = ContainerConfig.builder()
    .image(imageName)
    .cmd(command)
    .build()
val container = docker.createContainer(containerConfig)
docker.startContainer(container.id())
docker.waitContainer(container.id())
val logs = docker.logs(container.id(), stdout(), stderr())
val output = logs.readFully()
...