Как использовать Groovy Docker-Cleint (de.gesellix) для создания изображения Docker?JAVA

Программисты JAVA общаются здесь
Anonymous
 Как использовать Groovy Docker-Cleint (de.gesellix) для создания изображения Docker?

Сообщение Anonymous »

Похоже, нет никакой документации для de.gesellix.docker-client Docker API Client (для Groovy). В следующем примере я могу перечислить изображения и получить пинг, но я не могу создать контейнер Docker. < /P>

Код: Выделить всё

#!/usr/bin/env groovy
@Grapes(
[
@Grab(group='de.gesellix', module='docker-client', version='2025-01-19T00-00-00'),
@Grab(group='commons-io', module='commons-io', version='2.18.0'),
]
)
import de.gesellix.docker.remote.api.BuildInfo
import de.gesellix.docker.remote.api.core.StreamCallback
import org.apache.commons.io.IOUtils
import de.gesellix.docker.client.DockerClientImpl
import java.nio.charset.StandardCharsets

void buildTestContainer() {

def dockerBuildStr = """FROM ubuntu:25.04\n
RUN env DEBIAN_FRONTEND=noninteractive apt update && apt install -y curl python3-pyqt6 libmpv-dev python3-pycodestyle xvfb
RUN curl -LsSf https://astral.sh/uv/install.sh | env XDG_BIN_HOME=/bin sh
""".stripIndent()
def buildFileStream = IOUtils.toInputStream(dockerBuildStr, StandardCharsets.UTF_8);

dockerClient = new DockerClientImpl()
println(dockerClient.images())
println(dockerClient.ping().content)
dockerClient.build(new StreamCallback() {
@Override
void onNext(BuildInfo buildInfo) {
println(buildInfo)
}
},
java.time.Duration.ofDays(1),
buildFileStream
)
}

buildTestContainer()
< /code>
Это приводит к < /p>
...(a bunch of image names, omitted)...
OK
Caught: {"message":"unexpected EOF"}

{"message":"unexpected EOF"}

at de.gesellix.docker.remote.api.client.ImageApi.imageBuild(ImageApi.kt:277)
at de.gesellix.docker.remote.api.client.ImageApi$imageBuild$0.call(Unknown Source)
Какой правильный способ использовать этот API для создания контейнера?

Подробнее здесь: https://stackoverflow.com/questions/794 ... cker-image

Вернуться в «JAVA»