@Test public void testNetCatDockerfileBuilder() throws DockerException, IOException, InterruptedException { File baseDir = new File(Thread.currentThread().getContextClassLoader().getResource("netcat").getFile()); ClientResponse response = dockerClient.buildImageCmd(baseDir).exec(); StringWriter logwriter = new StringWriter(); try { LineIterator itr = IOUtils.lineIterator(response.getEntityInputStream(), "UTF-8"); while (itr.hasNext()) { String line = itr.next(); logwriter.write(line + "\n"); LOG.info(line); } } finally { IOUtils.closeQuietly(response.getEntityInputStream()); } String fullLog = logwriter.toString(); assertThat(fullLog, containsString("Successfully built")); String imageId = StringUtils.substringBetween(fullLog, "Successfully built ", "\\n\"}").trim(); ImageInspectResponse imageInspectResponse = dockerClient.inspectImageCmd(imageId).exec(); assertThat(imageInspectResponse, not(nullValue())); LOG.info("Image Inspect: {}", imageInspectResponse.toString()); tmpImgs.add(imageInspectResponse.getId()); ContainerCreateResponse container = dockerClient.createContainerCmd(imageInspectResponse.getId()).exec(); assertThat(container.getId(), not(isEmptyString())); dockerClient.startContainerCmd(container.getId()).exec(); tmpContainers.add(container.getId()); ContainerInspectResponse containerInspectResponse = dockerClient.inspectContainerCmd(container.getId()).exec(); assertThat(containerInspectResponse.getId(), notNullValue()); assertThat(containerInspectResponse.getNetworkSettings().getPorts(), notNullValue()); // No use as such if not running on the server for (Ports.Port p : containerInspectResponse.getNetworkSettings().getPorts().getAllPorts()) { int port = Integer.valueOf(p.getHostPort()); LOG.info("Checking port {} is open", port); assertThat(available(port), is(false)); } dockerClient.stopContainerCmd(container.getId()).withTimeout(0).exec(); }