@Override protected Void execute(RemoveImageCmd command) { WebTarget webTarget = getBaseResource().path("/images/" + command.getImageId()); webTarget = booleanQueryParam(webTarget, "force", command.hasForceEnabled()); webTarget = booleanQueryParam(webTarget, "noprune", command.hasNoPruneEnabled()); LOGGER.trace("DELETE: {}", webTarget); webTarget.request().delete().close(); return null; }
private static void dockerRmi(String imageId) { if (imageId != null) { try { dockerClient.removeImageCmd(imageId).exec(); System.out.printf("cleaned test image %s\n", imageId); } catch (Throwable t) { System.out.printf("Failed to clean test image %s: %s\n", imageId, t.toString()); } } }
public Void call() throws Exception { DockerClient client = DockerCommand.getClient(descriptor, cfgData.dockerUrlRes, cfgData.dockerVersionRes, cfgData.dockerCertPathRes, null); if (imageIdRes == null || imageIdRes.isEmpty()) { client.removeImageCmd(imageNameRes).exec(); } else { client.removeImageCmd(imageNameRes).withImageId(imageIdRes).exec(); } return null; }
/** * Produces a remove image request * * @param client * @param message * @return */ private RemoveImageCmd executeRemoveImageRequest(DockerClient client, Message message) { LOGGER.debug("Executing Docker Remove Image Request"); String imageId = DockerHelper.getProperty(DockerConstants.DOCKER_IMAGE_ID, configuration, message, String.class); ObjectHelper.notNull(imageId, "Image ID must be specified"); RemoveImageCmd removeImagesCmd = client.removeImageCmd(imageId); Boolean force = DockerHelper.getProperty(DockerConstants.DOCKER_FORCE, configuration, message, Boolean.class); if (force != null) { removeImagesCmd.withForce(force); } Boolean noPrune = DockerHelper.getProperty(DockerConstants.DOCKER_NO_PRUNE, configuration, message, Boolean.class); if (noPrune != null) { removeImagesCmd.withNoPrune(noPrune); } return removeImagesCmd; }
log.info("Removing image tagged {}", dockerImageName); try { dockerClientForCleaning.removeImageCmd(dockerImageName).withForce(true).exec(); } catch (Throwable e) { log.warn("Unable to delete image " + dockerImageName, e);
void deleteImage(DockerImage dockerImage) { try { dockerClient.removeImageCmd(dockerImage.asString()).exec(); } catch (NotFoundException ignored) { // Image was already deleted, ignore } catch (RuntimeException e) { numberOfDockerDaemonFails.add(); throw new DockerException("Failed to delete docker image " + dockerImage.asString(), e); } }
@Test public void runCommandInsideDockerShouldNotFailIfImageDoesNotExistsLocally() { final DockerClientFactory dockFactory = DockerClientFactory.instance(); try { //remove tiny image, so it will be pulled during next command run dockFactory.client() .removeImageCmd(TestcontainersConfiguration.getInstance().getTinyImage()) .withForce(true).exec(); } catch (NotFoundException ignored) { // Do not fail if it's not pulled yet } dockFactory.runInsideDocker( cmd -> cmd.withCmd("sh", "-c", "echo 'SUCCESS'"), (client, id) -> client.logContainerCmd(id) .withStdOut(true) .exec(new LogToStringContainerCallback()) .toString() ); }
@BeforeEach public void ensureContainerIsNotPresent() { try { String imageToRemove = dockerClient.inspectImageCmd(WANTED_IMAGE).exec().getId(); dockerClient.removeImageCmd(imageToRemove).exec(); } catch (NotFoundException e) { // not found, no problems } }
@Override protected Void execute(RemoveImageCmd command) { WebTarget webTarget = getBaseResource().path("/images/" + command.getImageId()); webTarget = booleanQueryParam(webTarget, "force", command.hasForceEnabled()); webTarget = booleanQueryParam(webTarget, "noprune", command.hasNoPruneEnabled()); LOGGER.trace("DELETE: {}", webTarget); webTarget.request().delete(); return null; }
private void putImageInRegistry() throws InterruptedException { // It doesn't matter which image we use for this test, but use one that's likely to have been pulled already final String dummySourceImage = TestcontainersConfiguration.getInstance().getRyukImage(); client.pullImageCmd(dummySourceImage) .exec(new PullImageResultCallback()) .awaitCompletion(1, TimeUnit.MINUTES); final String id = client.inspectImageCmd(dummySourceImage) .exec() .getId(); // push the image to the registry client.tagImageCmd(id, testImageName, "latest").exec(); client.pushImageCmd(testImageNameWithTag) .exec(new PushImageResultCallback()) .awaitCompletion(1, TimeUnit.MINUTES); // remove the image tag from local docker so that it must be pulled before use client.removeImageCmd(testImageNameWithTag).withForce(true).exec(); } }
break; case REMOVE_IMAGE: result = executeRemoveImageRequest(client, message).exec(); break; case SEARCH_IMAGES:
@Override protected Void execute(RemoveImageCmd command) { WebTarget webTarget = getBaseResource().path("/images/" + command.getImageId()); webTarget = booleanQueryParam(webTarget, "force", command.hasForceEnabled()); webTarget = booleanQueryParam(webTarget, "noprune", command.hasNoPruneEnabled()); LOGGER.trace("DELETE: {}", webTarget); webTarget.request().delete().close(); return null; }
@Override protected Void execute(RemoveImageCmd command) { WebTarget webTarget = getBaseResource().path("/images/" + command.getImageId()); webTarget = booleanQueryParam(webTarget, "force", command.hasForceEnabled()); webTarget = booleanQueryParam(webTarget, "noprune", command.hasNoPruneEnabled()); LOGGER.trace("DELETE: {}", webTarget); webTarget.request().delete(); return null; }
private void cleanImage(final Id id, final boolean force) { if (id == null) { throw new IllegalArgumentException("id is null"); } String imageId = null; try { imageId = findImageId(id); } catch (NotFoundException e) { logger.warn("Image " + id + " not found"); } catch (DockerException e) { throw new OrchestrationException(e); } if (imageId != null) { logger.info("Removing image " + imageId); try { docker.removeImageCmd(imageId) .withForce(force) .exec(); } catch (DockerException e) { logger.warn(e.getMessage()); } } }