diff --git a/bubble-server/src/main/java/bubble/cloud/compute/docker/DockerComputeDriver.java b/bubble-server/src/main/java/bubble/cloud/compute/docker/DockerComputeDriver.java index 815287ff..3793e27a 100644 --- a/bubble-server/src/main/java/bubble/cloud/compute/docker/DockerComputeDriver.java +++ b/bubble-server/src/main/java/bubble/cloud/compute/docker/DockerComputeDriver.java @@ -20,16 +20,13 @@ import com.github.dockerjava.core.DockerClientConfig; import com.github.dockerjava.core.DockerClientImpl; import com.github.dockerjava.transport.DockerHttpClient; import com.github.dockerjava.zerodep.ZerodepDockerHttpClient; -import edu.emory.mathcs.backport.java.util.Arrays; -import edu.emory.mathcs.backport.java.util.concurrent.ConcurrentHashMap; import lombok.Getter; import lombok.extern.slf4j.Slf4j; import org.cobbzilla.util.collection.MapBuilder; import java.io.IOException; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; +import java.util.*; +import java.util.concurrent.ConcurrentHashMap; import java.util.function.Predicate; import java.util.stream.Collectors; @@ -185,8 +182,18 @@ public class DockerComputeDriver extends ComputeServiceDriverBase { @Override public List getAllPackerImages() { final DockerClient dc = getDockerClient(); - final List images = dc.listImagesCmd().exec().stream() - .filter(i -> i.getLabels().containsKey(LABEL_IMAGE) && i.getLabels().get(LABEL_IMAGE).startsWith(PACKER_IMAGE_PREFIX)) + final List list1 = dc.listImagesCmd().exec(); + final String repository; + try { + repository = getConfig().getPacker().getPost().get("repository").asText(); + if (empty(repository)) die("repository value was empty"); + } catch (Exception e) { + log.error("getAllPackerImages: no repository found in packer.post config (returning empty list): "+shortError(e)); + return emptyList(); + } + final String prefix = repository + ":" + PACKER_IMAGE_PREFIX; + final List images = list1.stream() + .filter(i -> i.getRepoTags() != null && Arrays.stream(i.getRepoTags()).anyMatch(t -> t.startsWith(prefix))) .collect(Collectors.toList()); final List packerImages = new ArrayList<>(); for (Image i : images) {