Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 0 additions & 8 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -397,10 +397,6 @@
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
</plugin>
</plugins>
</build>

Expand All @@ -426,10 +422,6 @@
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
</plugin>
</plugins>
</build>
</profile>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,8 @@ public interface StartContainerCmd extends DockerCmd<Void> {

public Device[] getDevices();

public String[] getExtraHosts();

public RestartPolicy getRestartPolicy();

public Capability[] getCapAdd();
Expand Down Expand Up @@ -107,6 +109,11 @@ public interface StartContainerCmd extends DockerCmd<Void> {
*/
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()}
Expand Down Expand Up @@ -141,4 +148,4 @@ public interface StartContainerCmd extends DockerCmd<Void> {
public static interface Exec extends DockerCmdExec<StartContainerCmd, Void> {
}

}
}
15 changes: 14 additions & 1 deletion src/main/java/com/github/dockerjava/api/model/HostConfig.java
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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() {
Expand Down Expand Up @@ -124,6 +129,10 @@ public Device[] getDevices() {
return devices;
}

public String[] getExtraHosts() {
return extraHosts;
}

public RestartPolicy getRestartPolicy() {
return restartPolicy;
}
Expand Down Expand Up @@ -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);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,9 @@ public class StartContainerCmdImpl extends AbstrDockerCmd<StartContainerCmd, Voi
@JsonProperty("Devices")
private Device[] devices;

@JsonProperty("ExtraHosts")
private String[] extraHosts;

@JsonProperty("RestartPolicy")
private RestartPolicy restartPolicy;

Expand Down Expand Up @@ -141,6 +144,11 @@ public Device[] getDevices() {
return devices;
}

@Override
public String[] getExtraHosts() {
return extraHosts;
}

@Override
public RestartPolicy getRestartPolicy() {
return restartPolicy;
Expand Down Expand Up @@ -250,6 +258,14 @@ public StartContainerCmd withDevices(Device... devices) {
this.devices = devices;
return this;
}

@Override
public StartContainerCmd withExtraHosts(String... extraHosts) {
checkNotNull(extraHosts, "extraHosts was not specified");
this.extraHosts = extraHosts;
return this;
}


@Override
public StartContainerCmd withRestartPolicy(RestartPolicy restartPolicy) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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"));
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -437,6 +437,29 @@ public void startContainerWithDevices() throws DockerException {
"/dev/zero")));
}

@Test
public void startContainerWithExtraHosts() throws DockerException {

CreateContainerResponse container = dockerClient
.createContainerCmd("busybox").withCmd("sleep", "9999").exec();

LOG.info("Created container {}", container.toString());

assertThat(container.getId(), not(isEmptyString()));

dockerClient.startContainerCmd(container.getId())
.withExtraHosts("dockerhost:127.0.0.1")
.exec();

InspectContainerResponse inspectContainerResponse = dockerClient
.inspectContainerCmd(container.getId()).exec();

assertThat(inspectContainerResponse.getState().isRunning(), is(true));

assertThat(Arrays.asList(inspectContainerResponse.getHostConfig()
.getExtraHosts()), contains("dockerhost:127.0.0.1"));
}

@Test
public void startContainerWithRestartPolicy() throws DockerException {

Expand Down