diff --git a/src/main/java/com/github/dockerjava/api/command/CreateContainerCmd.java b/src/main/java/com/github/dockerjava/api/command/CreateContainerCmd.java index 371774414..4623167d0 100644 --- a/src/main/java/com/github/dockerjava/api/command/CreateContainerCmd.java +++ b/src/main/java/com/github/dockerjava/api/command/CreateContainerCmd.java @@ -10,6 +10,7 @@ import com.github.dockerjava.api.model.ExposedPort; import com.github.dockerjava.api.model.HostConfig; import com.github.dockerjava.api.model.Link; +import com.github.dockerjava.api.model.LogConfig; import com.github.dockerjava.api.model.LxcConf; import com.github.dockerjava.api.model.PortBinding; import com.github.dockerjava.api.model.Ports; @@ -88,6 +89,8 @@ public static interface Exec extends DockerCmdSyncExec config; + + public LogConfig(String type, Map config) { + this.type = type; + this.config = config; + } + + public LogConfig() { + } + + public String getType() { + return type; + } + + public LogConfig setType(String type) { + this.type = type; + return this; + } + + @JsonIgnore + public Map getConfig() { + return config; + } + + @JsonIgnore + public LogConfig setConfig(Map config) { + this.config = config; + return this; + } +} diff --git a/src/main/java/com/github/dockerjava/core/command/CreateContainerCmdImpl.java b/src/main/java/com/github/dockerjava/core/command/CreateContainerCmdImpl.java index 328513211..70177b57f 100644 --- a/src/main/java/com/github/dockerjava/core/command/CreateContainerCmdImpl.java +++ b/src/main/java/com/github/dockerjava/core/command/CreateContainerCmdImpl.java @@ -19,6 +19,7 @@ import com.github.dockerjava.api.model.ExposedPorts; import com.github.dockerjava.api.model.HostConfig; import com.github.dockerjava.api.model.Link; +import com.github.dockerjava.api.model.LogConfig; import com.github.dockerjava.api.model.LxcConf; import com.github.dockerjava.api.model.PortBinding; import com.github.dockerjava.api.model.Ports; @@ -269,6 +270,12 @@ public Map getLabels() { public LxcConf[] getLxcConf() { return hostConfig.getLxcConf(); } + + @Override + @JsonIgnore + public LogConfig getLogConfig() { + return hostConfig.getLogConfig(); + } public String getMacAddress() { return macAddress; @@ -558,6 +565,13 @@ public CreateContainerCmd withLxcConf(LxcConf... lxcConf) { this.hostConfig.setLxcConf(lxcConf); return this; } + + @Override + public CreateContainerCmd withLogConfig(LogConfig logConfig) { + checkNotNull(logConfig, "logConfig was not specified"); + this.hostConfig.setLogConfig(logConfig); + return this; + } @Override public CreateContainerCmdImpl withMacAddress(String macAddress) { 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 00322bffa..eb5d1a3f0 100644 --- a/src/test/java/com/github/dockerjava/core/command/CreateContainerCmdImplTest.java +++ b/src/test/java/com/github/dockerjava/core/command/CreateContainerCmdImplTest.java @@ -38,6 +38,7 @@ import com.github.dockerjava.api.model.ExposedPort; import com.github.dockerjava.api.model.HostConfig; import com.github.dockerjava.api.model.Link; +import com.github.dockerjava.api.model.LogConfig; import com.github.dockerjava.api.model.Ports; import com.github.dockerjava.api.model.RestartPolicy; import com.github.dockerjava.api.model.Ulimit; @@ -534,4 +535,21 @@ public void createContainerWithLabels() throws DockerException { labels.put("com.github.dockerjava.null", ""); assertThat(inspectContainerResponse.getConfig().getLabels(), is(equalTo(labels))); } + + @Test(groups = "ignoreInCircleCi") + public void createContainerWithLogConfig() throws DockerException { + + LogConfig logConfig = new LogConfig("none", null); + CreateContainerResponse container = dockerClient.createContainerCmd("busybox"). + withLogConfig(logConfig).exec(); + + LOG.info("Created container {}", container.toString()); + + assertThat(container.getId(), not(isEmptyString())); + + InspectContainerResponse inspectContainerResponse = dockerClient.inspectContainerCmd(container.getId()).exec(); + + // null becomes empty string + assertEquals(inspectContainerResponse.getHostConfig().getLogConfig().type, logConfig.type); + } }