From 20d049ea10c14eb335014b5c8d150f55bf437377 Mon Sep 17 00:00:00 2001 From: Georg Pfuetzenreuter Date: Fri, 6 May 2022 18:25:22 +0200 Subject: Checkpoint Signed-off-by: Georg Pfuetzenreuter --- src/main/java/net/libertacasa/pubsh/web/Docker.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'src/main/java/net/libertacasa/pubsh/web/Docker.java') diff --git a/src/main/java/net/libertacasa/pubsh/web/Docker.java b/src/main/java/net/libertacasa/pubsh/web/Docker.java index 536a80e..1460bb3 100644 --- a/src/main/java/net/libertacasa/pubsh/web/Docker.java +++ b/src/main/java/net/libertacasa/pubsh/web/Docker.java @@ -1,11 +1,15 @@ package net.libertacasa.pubsh.web; +import java.io.File; import java.time.Duration; import java.util.Arrays; import java.util.Collection; +import java.util.HashSet; import java.util.List; +import java.util.Set; import java.util.stream.Collectors; import com.github.dockerjava.api.DockerClient; +import com.github.dockerjava.api.command.BuildImageResultCallback; import com.github.dockerjava.api.command.InspectExecResponse.Container; import com.github.dockerjava.api.command.ListContainersCmd; import com.github.dockerjava.api.model.Image; @@ -77,4 +81,17 @@ public class Docker { dockerClient.removeContainerCmd(id).exec(); } + public static String buildImage(String targetUser, String osChoice, Integer count) { + String dockerfile = "classpath:docker/Dockerfile-" + osChoice; + String tag = targetUser + ":sh" + count; + Set tags = new HashSet(); + tags.add(tag); + String imgid = dockerClient.buildImageCmd() + .withDockerfile(new File(dockerfile)) + .withPull(false).withNoCache(false).withTags(tags) + .exec(new BuildImageResultCallback()).awaitImageId(); + + return(imgid); + } + } -- cgit v1.2.3