X Tutup
Skip to content

Commit 10ad1d5

Browse files
committed
Add also netty based implementation
1 parent a11811b commit 10ad1d5

File tree

2 files changed

+26
-0
lines changed

2 files changed

+26
-0
lines changed

src/main/java/com/github/dockerjava/netty/exec/BuildImageCmdExec.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.github.dockerjava.netty.exec;
22

3+
import com.fasterxml.jackson.databind.ObjectMapper;
34
import org.slf4j.Logger;
45
import org.slf4j.LoggerFactory;
56

@@ -13,9 +14,12 @@
1314
import com.github.dockerjava.netty.MediaType;
1415
import com.github.dockerjava.netty.WebTarget;
1516

17+
import java.io.IOException;
18+
1619
public class BuildImageCmdExec extends AbstrAsyncDockerCmdExec<BuildImageCmd, BuildResponseItem> implements
1720
BuildImageCmd.Exec {
1821
private static final Logger LOGGER = LoggerFactory.getLogger(BuildImageCmdExec.class);
22+
private static final ObjectMapper MAPPER = new ObjectMapper();
1923

2024
public BuildImageCmdExec(WebTarget baseResource, DockerClientConfig dockerClientConfig) {
2125
super(baseResource, dockerClientConfig);
@@ -80,6 +84,14 @@ protected Void execute0(BuildImageCmd command, ResultCallback<BuildResponseItem>
8084
webTarget = webTarget.queryParam("cpusetcpus", command.getCpusetcpus());
8185
}
8286

87+
if (command.getBuildArgs() != null) {
88+
try {
89+
webTarget = webTarget.queryParam("buildargs", MAPPER.writeValueAsString(command.getBuildArgs()));
90+
} catch (IOException e) {
91+
// pass
92+
}
93+
}
94+
8395
LOGGER.trace("POST: {}", webTarget);
8496

8597
InvocationBuilder builder = resourceWithOptionalAuthConfig(command, webTarget.request()).accept(

src/test/java/com/github/dockerjava/netty/exec/BuildImageCmdExecTest.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -296,4 +296,18 @@ public void testBuildFromPrivateRegistry() throws Exception {
296296
LOG.info("Image Inspect: {}", inspectImageResponse.toString());
297297

298298
}
299+
300+
@Test
301+
public void testBuildArgs() throws Exception {
302+
File baseDir = new File(Thread.currentThread().getContextClassLoader().getResource("testBuildArgs").getFile());
303+
304+
String imageId = dockerClient.buildImageCmd(baseDir).withNoCache(true).withBuildArg("testArg", "abc").exec(new BuildImageResultCallback())
305+
.awaitImageId();
306+
307+
InspectImageResponse inspectImageResponse = dockerClient.inspectImageCmd(imageId).exec();
308+
assertThat(inspectImageResponse, not(nullValue()));
309+
LOG.info("Image Inspect: {}", inspectImageResponse.toString());
310+
311+
assertThat(inspectImageResponse.getConfig().getLabels().get("test"), equalTo("abc"));
312+
}
299313
}

0 commit comments

Comments
 (0)
X Tutup