@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();
  }