private static boolean imageExistLocally(DockerClient dockerClient, String image) throws DockerException, InterruptedException { try { dockerClient.inspectImage(image); return true; } catch (ImageNotFoundException e) { return false; } }
docker.inspectImage(image); } catch (ImageNotFoundException e) {
docker.inspectImage(BUSYBOX); } catch (ImageNotFoundException e) { docker.pull(BUSYBOX); docker.inspectImage(ALPINE); } catch (ImageNotFoundException e) { docker.pull(ALPINE);
private String startContainer(final String image, final Optional<String> dockerVersion) throws InterruptedException, DockerException { // Get container image info final ImageInfo imageInfo = docker.inspectImage(image); if (imageInfo == null) { throw new HeliosRuntimeException("docker inspect image returned null on image " + image); } // Create container final HostConfig hostConfig = config.hostConfig(dockerVersion); final ContainerConfig containerConfig = config.containerConfig(imageInfo, dockerVersion) .toBuilder() .hostConfig(hostConfig) .build(); listener.creating(); final ContainerCreation container = docker.createContainer(containerConfig, containerName); log.info("created container: {}: {}, {}", config, container, containerConfig); listener.created(container.id()); // Start container log.info("starting container: {}: {} {}", config, container.id(), hostConfig); listener.starting(); docker.startContainer(container.id()); log.info("started container: {}: {}", config, container.id()); listener.started(); return container.id(); }
public boolean existsImage(String imageId) { boolean exists = true; try { dockerClient.inspectImage(imageId); log.trace("Docker image {} already exists", imageId); } catch (Exception e) { log.trace("Image {} does not exist", imageId); exists = false; } return exists; }
private void createImage(DockerImage image) throws DockerException { try { try { dockerClient.inspectImage(image.name()); } catch (ImageNotFoundException e) { logger.info(String.format("Image %s is absent, try pulling it", image.name())); dockerClient.pull(image.name()); } } catch (InterruptedException e) { logger.error("", e); } }
private void pullImage() throws DockerException, InterruptedException { // equivalent to "docker pull" final long startTime = System.currentTimeMillis(); final String image = containerConfig.image(); try { boolean found = false; try { client.inspectImage(image); LOGGER.info("Docker image already exists: {}", image); found = true; } catch (final ImageNotFoundException e) { found = false; } if (config.isAlwaysPullLatestImage() || !found) { LOGGER.info("Pulling docker image: {}", image); client.pull(image); } } catch (final DockerException e) { throw new DockerException("Unable to pull docker image " + image, e); } finally { final long elapsedMillis = System.currentTimeMillis() - startTime; LOGGER.info("Docker image {} pulled in {}ms", image, elapsedMillis); } }
docker.inspectImage(image); } catch (ImageNotFoundException e) {
private String startContainer(final String image) throws InterruptedException, DockerException { // Get container image info final ImageInfo imageInfo = docker.inspectImage(image); if (imageInfo == null) { throw new HeliosRuntimeException("docker inspect image returned null on image " + image); } // Create container final HostConfig hostConfig = config.hostConfig(); final ContainerConfig containerConfig = config.containerConfig(imageInfo) .toBuilder() .hostConfig(hostConfig) .build(); listener.creating(); final ContainerCreation container = docker.createContainer(containerConfig, containerName); log.info("created container: {}: {}, {}", config, container, containerConfig); listener.created(container.id()); // Start container log.info("starting container: {}: {} {}", config, container.id(), hostConfig); listener.starting(); docker.startContainer(container.id()); log.info("started container: {}: {}", config, container.id()); listener.started(); return container.id(); }
client.inspectImage(container.image());