Skip to content

Commit 126fae1

Browse files
author
kalmanb
committed
Add support for configuring ExtraHosts
Extends HostConfig to support adding entries to /etc/hosts on startup.
1 parent 4bdfd6f commit 126fae1

2 files changed

Lines changed: 37 additions & 1 deletion

File tree

src/main/java/com/github/dockerjava/api/model/HostConfig.java

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,12 +53,16 @@ public class HostConfig {
5353
@JsonProperty("Devices")
5454
private Device[] devices;
5555

56+
@JsonProperty("ExtraHosts")
57+
private String[] extraHosts;
58+
5659
public HostConfig() {
5760
}
5861

5962
public HostConfig(String[] binds, Links links, LxcConf[] lxcConf, Ports portBindings, boolean publishAllPorts,
6063
boolean privileged, String[] dns, String[] dnsSearch, VolumesFrom[] volumesFrom, String containerIDFile,
61-
Capability[] capAdd, Capability[] capDrop, RestartPolicy restartPolicy, String networkMode, Device[] devices) {
64+
Capability[] capAdd, Capability[] capDrop, RestartPolicy restartPolicy, String networkMode, Device[] devices,
65+
String[] extraHosts) {
6266
this.binds = binds;
6367
this.links = links;
6468
this.lxcConf = lxcConf;
@@ -74,6 +78,7 @@ public HostConfig(String[] binds, Links links, LxcConf[] lxcConf, Ports portBind
7478
this.restartPolicy = restartPolicy;
7579
this.networkMode = networkMode;
7680
this.devices = devices;
81+
this.extraHosts = extraHosts;
7782
}
7883

7984
public String[] getBinds() {
@@ -124,6 +129,10 @@ public Device[] getDevices() {
124129
return devices;
125130
}
126131

132+
public String[] getExtraHosts() {
133+
return extraHosts;
134+
}
135+
127136
public RestartPolicy getRestartPolicy() {
128137
return restartPolicy;
129138
}
@@ -196,6 +205,10 @@ public void setDevices(Device[] devices) {
196205
this.devices = devices;
197206
}
198207

208+
public void setExtraHosts(String[] extraHosts) {
209+
this.extraHosts = extraHosts;
210+
}
211+
199212
@Override
200213
public String toString() {
201214
return ToStringBuilder.reflectionToString(this);

src/test/java/com/github/dockerjava/core/command/CreateContainerCmdImplTest.java

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -311,4 +311,27 @@ public void createContainerWithEntrypoint() throws DockerException {
311311

312312
}
313313

314+
@Test
315+
public void createContainerWithExtraHosts() throws DockerException {
316+
317+
String[] extraHosts = {"dockerhost:127.0.0.1", "otherhost:10.0.0.1"};
318+
319+
HostConfig hostConfig = new HostConfig();
320+
hostConfig.setExtraHosts(extraHosts);
321+
322+
CreateContainerResponse container = dockerClient
323+
.createContainerCmd("busybox").withName("container")
324+
.withHostConfig(hostConfig).exec();
325+
326+
LOG.info("Created container {}", container.toString());
327+
328+
assertThat(container.getId(), not(isEmptyString()));
329+
330+
InspectContainerResponse inspectContainerResponse = dockerClient
331+
.inspectContainerCmd(container.getId()).exec();
332+
333+
assertThat(Arrays.asList(inspectContainerResponse.getHostConfig().getExtraHosts()),
334+
containsInAnyOrder("dockerhost:127.0.0.1", "otherhost:10.0.0.1"));
335+
}
336+
314337
}

0 commit comments

Comments
 (0)