From 126fae13e1b87cbcac0277ab8b6a038e50808fc4 Mon Sep 17 00:00:00 2001 From: kalmanb Date: Thu, 19 Feb 2015 13:51:39 +1300 Subject: [PATCH 1/3] Add support for configuring ExtraHosts Extends HostConfig to support adding entries to /etc/hosts on startup. --- .../dockerjava/api/model/HostConfig.java | 15 +++++++++++- .../command/CreateContainerCmdImplTest.java | 23 +++++++++++++++++++ 2 files changed, 37 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/github/dockerjava/api/model/HostConfig.java b/src/main/java/com/github/dockerjava/api/model/HostConfig.java index 5532fba3a..c72d078b1 100644 --- a/src/main/java/com/github/dockerjava/api/model/HostConfig.java +++ b/src/main/java/com/github/dockerjava/api/model/HostConfig.java @@ -53,12 +53,16 @@ public class HostConfig { @JsonProperty("Devices") private Device[] devices; + @JsonProperty("ExtraHosts") + private String[] extraHosts; + public HostConfig() { } public HostConfig(String[] binds, Links links, LxcConf[] lxcConf, Ports portBindings, boolean publishAllPorts, boolean privileged, String[] dns, String[] dnsSearch, VolumesFrom[] volumesFrom, String containerIDFile, - Capability[] capAdd, Capability[] capDrop, RestartPolicy restartPolicy, String networkMode, Device[] devices) { + Capability[] capAdd, Capability[] capDrop, RestartPolicy restartPolicy, String networkMode, Device[] devices, + String[] extraHosts) { this.binds = binds; this.links = links; this.lxcConf = lxcConf; @@ -74,6 +78,7 @@ public HostConfig(String[] binds, Links links, LxcConf[] lxcConf, Ports portBind this.restartPolicy = restartPolicy; this.networkMode = networkMode; this.devices = devices; + this.extraHosts = extraHosts; } public String[] getBinds() { @@ -124,6 +129,10 @@ public Device[] getDevices() { return devices; } + public String[] getExtraHosts() { + return extraHosts; + } + public RestartPolicy getRestartPolicy() { return restartPolicy; } @@ -196,6 +205,10 @@ public void setDevices(Device[] devices) { this.devices = devices; } + public void setExtraHosts(String[] extraHosts) { + this.extraHosts = extraHosts; + } + @Override public String toString() { return ToStringBuilder.reflectionToString(this); diff --git a/src/test/java/com/github/dockerjava/core/command/CreateContainerCmdImplTest.java b/src/test/java/com/github/dockerjava/core/command/CreateContainerCmdImplTest.java index ed81a5296..ba05b2687 100644 --- a/src/test/java/com/github/dockerjava/core/command/CreateContainerCmdImplTest.java +++ b/src/test/java/com/github/dockerjava/core/command/CreateContainerCmdImplTest.java @@ -311,4 +311,27 @@ public void createContainerWithEntrypoint() throws DockerException { } + @Test + public void createContainerWithExtraHosts() throws DockerException { + + String[] extraHosts = {"dockerhost:127.0.0.1", "otherhost:10.0.0.1"}; + + HostConfig hostConfig = new HostConfig(); + hostConfig.setExtraHosts(extraHosts); + + CreateContainerResponse container = dockerClient + .createContainerCmd("busybox").withName("container") + .withHostConfig(hostConfig).exec(); + + LOG.info("Created container {}", container.toString()); + + assertThat(container.getId(), not(isEmptyString())); + + InspectContainerResponse inspectContainerResponse = dockerClient + .inspectContainerCmd(container.getId()).exec(); + + assertThat(Arrays.asList(inspectContainerResponse.getHostConfig().getExtraHosts()), + containsInAnyOrder("dockerhost:127.0.0.1", "otherhost:10.0.0.1")); + } + } From 30e2688b610ed0e12dcafa023159735b2d471fc3 Mon Sep 17 00:00:00 2001 From: kalmanb Date: Fri, 20 Feb 2015 11:28:23 +1300 Subject: [PATCH 2/3] Support for withExtraHosts on StartContainerCmd --- .../api/command/StartContainerCmd.java | 9 +++++++- .../core/command/StartContainerCmdImpl.java | 16 +++++++++++++ .../command/StartContainerCmdImplTest.java | 23 +++++++++++++++++++ 3 files changed, 47 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/github/dockerjava/api/command/StartContainerCmd.java b/src/main/java/com/github/dockerjava/api/command/StartContainerCmd.java index 40fb23a9f..b48e30508 100644 --- a/src/main/java/com/github/dockerjava/api/command/StartContainerCmd.java +++ b/src/main/java/com/github/dockerjava/api/command/StartContainerCmd.java @@ -40,6 +40,8 @@ public interface StartContainerCmd extends DockerCmd { public Device[] getDevices(); + public String[] getExtraHosts(); + public RestartPolicy getRestartPolicy(); public Capability[] getCapAdd(); @@ -107,6 +109,11 @@ public interface StartContainerCmd extends DockerCmd { */ public StartContainerCmd withDevices(Device... devices); + /** + * Add hostnames to /etc/hosts in the container + */ + public StartContainerCmd withExtraHosts(String... extraHosts); + /** * Set custom {@link RestartPolicy} for the container. Defaults to * {@link RestartPolicy#noRestart()} @@ -141,4 +148,4 @@ public interface StartContainerCmd extends DockerCmd { public static interface Exec extends DockerCmdExec { } -} \ No newline at end of file +} diff --git a/src/main/java/com/github/dockerjava/core/command/StartContainerCmdImpl.java b/src/main/java/com/github/dockerjava/core/command/StartContainerCmdImpl.java index c3a5cadaa..dba35fb99 100644 --- a/src/main/java/com/github/dockerjava/core/command/StartContainerCmdImpl.java +++ b/src/main/java/com/github/dockerjava/core/command/StartContainerCmdImpl.java @@ -65,6 +65,9 @@ public class StartContainerCmdImpl extends AbstrDockerCmd Date: Mon, 23 Feb 2015 17:45:21 +1300 Subject: [PATCH 3/3] Adding volumes that was commented for some reason --- pom.xml | 8 -------- 1 file changed, 8 deletions(-) diff --git a/pom.xml b/pom.xml index 17bdc7280..43300cee9 100644 --- a/pom.xml +++ b/pom.xml @@ -397,10 +397,6 @@ org.apache.maven.plugins maven-source-plugin - - org.apache.maven.plugins - maven-javadoc-plugin - @@ -426,10 +422,6 @@ org.apache.maven.plugins maven-source-plugin - - org.apache.maven.plugins - maven-javadoc-plugin -