Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit fe0ce66

Browse filesBrowse files
authored
Introduce extrahosts parameter for building an image (docker-java#1340)
* Introduce extrahosts parameter for building an image * Pass in a Set of extra hosts
1 parent 472f927 commit fe0ce66
Copy full SHA for fe0ce66

5 files changed

+59-14Lines changed: 59 additions & 14 deletions

File tree

Expand file treeCollapse file tree
Open diff view settings
Filter options
Expand file treeCollapse file tree
Open diff view settings
Collapse file

‎docker-java-api/src/main/java/com/github/dockerjava/api/command/BuildImageCmd.java‎

Copy file name to clipboardExpand all lines: docker-java-api/src/main/java/com/github/dockerjava/api/command/BuildImageCmd.java
+16-6Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,16 @@
11
package com.github.dockerjava.api.command;
22

3+
import com.github.dockerjava.api.model.AuthConfigurations;
4+
import com.github.dockerjava.api.model.BuildResponseItem;
5+
6+
import javax.annotation.CheckForNull;
7+
import javax.annotation.Nonnull;
38
import java.io.File;
49
import java.io.InputStream;
510
import java.net.URI;
611
import java.util.Map;
712
import java.util.Set;
813

9-
import javax.annotation.CheckForNull;
10-
import javax.annotation.Nonnull;
11-
12-
import com.github.dockerjava.api.model.AuthConfigurations;
13-
import com.github.dockerjava.api.model.BuildResponseItem;
14-
1514
/**
1615
* Build an image from Dockerfile.
1716
* <p>
@@ -145,6 +144,12 @@ public interface BuildImageCmd extends AsyncDockerCmd<BuildImageCmd, BuildRespon
145144
@CheckForNull
146145
String getTarget();
147146

147+
/**
148+
* @since {@link RemoteApiVersion#VERSION_1_28}
149+
*/
150+
@CheckForNull
151+
Set<String> getExtraHosts();
152+
148153
// setters
149154

150155
/**
@@ -223,6 +228,11 @@ public interface BuildImageCmd extends AsyncDockerCmd<BuildImageCmd, BuildRespon
223228
*/
224229
BuildImageCmd withTarget(String target);
225230

231+
/**
232+
* @since {@link RemoteApiVersion#VERSION_1_28}
233+
*/
234+
BuildImageCmd withExtraHosts(Set<String> extraHosts);
235+
226236
@Override
227237
default BuildImageResultCallback start() {
228238
return exec(new BuildImageResultCallback());
Collapse file

‎docker-java-core/src/main/java/com/github/dockerjava/core/RemoteApiVersion.java‎

Copy file name to clipboardExpand all lines: docker-java-core/src/main/java/com/github/dockerjava/core/RemoteApiVersion.java
+1Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@ public class RemoteApiVersion implements Serializable {
7979

8080
public static final RemoteApiVersion VERSION_1_26 = RemoteApiVersion.create(1, 26);
8181
public static final RemoteApiVersion VERSION_1_27 = RemoteApiVersion.create(1, 27);
82+
public static final RemoteApiVersion VERSION_1_28 = RemoteApiVersion.create(1, 28);
8283
public static final RemoteApiVersion VERSION_1_29 = RemoteApiVersion.create(1, 29);
8384
public static final RemoteApiVersion VERSION_1_30 = RemoteApiVersion.create(1, 30);
8485
public static final RemoteApiVersion VERSION_1_31 = RemoteApiVersion.create(1, 31);
Collapse file

‎docker-java-core/src/main/java/com/github/dockerjava/core/command/BuildImageCmdImpl.java‎

Copy file name to clipboardExpand all lines: docker-java-core/src/main/java/com/github/dockerjava/core/command/BuildImageCmdImpl.java
+20-8Lines changed: 20 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,12 @@
11
package com.github.dockerjava.core.command;
22

3-
import static com.google.common.base.Preconditions.checkNotNull;
3+
import com.github.dockerjava.api.command.BuildImageCmd;
4+
import com.github.dockerjava.api.model.AuthConfigurations;
5+
import com.github.dockerjava.api.model.BuildResponseItem;
6+
import com.github.dockerjava.core.dockerfile.Dockerfile;
7+
import com.github.dockerjava.core.util.FilePathUtil;
48

9+
import javax.annotation.CheckForNull;
510
import java.io.File;
611
import java.io.IOException;
712
import java.io.InputStream;
@@ -10,13 +15,7 @@
1015
import java.util.Map;
1116
import java.util.Set;
1217

13-
import com.github.dockerjava.api.command.BuildImageCmd;
14-
import com.github.dockerjava.api.model.AuthConfigurations;
15-
import com.github.dockerjava.api.model.BuildResponseItem;
16-
import com.github.dockerjava.core.dockerfile.Dockerfile;
17-
import com.github.dockerjava.core.util.FilePathUtil;
18-
19-
import javax.annotation.CheckForNull;
18+
import static com.google.common.base.Preconditions.checkNotNull;
2019

2120
/**
2221
* Build an image from Dockerfile.
@@ -72,6 +71,8 @@ public class BuildImageCmdImpl extends AbstrAsyncDockerCmd<BuildImageCmd, BuildR
7271

7372
private String target;
7473

74+
private Set<String> extraHosts;
75+
7576
public BuildImageCmdImpl(BuildImageCmd.Exec exec) {
7677
super(exec);
7778
}
@@ -218,6 +219,11 @@ public Long getShmsize() {
218219
return shmsize;
219220
}
220221

222+
@Override
223+
public Set<String> getExtraHosts() {
224+
return extraHosts;
225+
}
226+
221227
// setters
222228

223229
/**
@@ -402,6 +408,12 @@ public BuildImageCmd withTarget(String target) {
402408
return this;
403409
}
404410

411+
@Override
412+
public BuildImageCmd withExtraHosts(Set<String> extraHosts) {
413+
this.extraHosts = extraHosts;
414+
return this;
415+
}
416+
405417
@Override
406418
public void close() {
407419
super.close();
Collapse file

‎docker-java-core/src/main/java/com/github/dockerjava/core/exec/BuildImageCmdExec.java‎

Copy file name to clipboardExpand all lines: docker-java-core/src/main/java/com/github/dockerjava/core/exec/BuildImageCmdExec.java
+4Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,10 @@ protected Void execute0(BuildImageCmd command, ResultCallback<BuildResponseItem>
117117
webTarget = webTarget.queryParam("target", command.getTarget());
118118
}
119119

120+
if (command.getExtraHosts() != null) {
121+
webTarget = webTarget.queryParamsSet("extrahosts", command.getExtraHosts());
122+
}
123+
120124
LOGGER.trace("POST: {}", webTarget);
121125

122126
InvocationBuilder builder = resourceWithOptionalAuthConfig(command, webTarget.request())
Collapse file

‎docker-java/src/test/java/com/github/dockerjava/cmd/BuildImageCmdIT.java‎

Copy file name to clipboardExpand all lines: docker-java/src/test/java/com/github/dockerjava/cmd/BuildImageCmdIT.java
+18Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
import static com.github.dockerjava.core.RemoteApiVersion.VERSION_1_21;
3232
import static com.github.dockerjava.core.RemoteApiVersion.VERSION_1_23;
3333
import static com.github.dockerjava.core.RemoteApiVersion.VERSION_1_27;
34+
import static com.github.dockerjava.core.RemoteApiVersion.VERSION_1_28;
3435
import static com.github.dockerjava.junit.DockerMatchers.isGreaterOrEqual;
3536
import static org.apache.commons.io.FileUtils.writeStringToFile;
3637
import static org.hamcrest.MatcherAssert.assertThat;
@@ -331,6 +332,23 @@ public void quiet() {
331332
LOG.info("Image Inspect: {}", inspectImageResponse.toString());
332333
}
333334

335+
@Test
336+
public void extraHosts() {
337+
assumeThat(dockerRule, isGreaterOrEqual(VERSION_1_28));
338+
339+
File baseDir = fileFromBuildTestResource("labels");
340+
341+
String imageId = dockerRule.getClient()
342+
.buildImageCmd(baseDir)
343+
.withExtraHosts(new HashSet<>(Arrays.asList("host1")))
344+
.start()
345+
.awaitImageId();
346+
347+
InspectImageResponse inspectImageResponse = dockerRule.getClient().inspectImageCmd(imageId).exec();
348+
assertThat(inspectImageResponse, not(nullValue()));
349+
LOG.info("Image Inspect: {}", inspectImageResponse.toString());
350+
}
351+
334352
public void dockerfileNotInBaseDirectory() throws Exception {
335353
File baseDirectory = fileFromBuildTestResource("dockerfileNotInBaseDirectory");
336354
File dockerfile = fileFromBuildTestResource("dockerfileNotInBaseDirectory/dockerfileFolder/Dockerfile");

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.