testcontainers/testcontainers-java

Image cache lookup should support SHA256 digests and Image IDs

Open

#1.406 aberto em 15 de abr. de 2019

Ver no GitHub
 (5 comments) (11 reactions) (0 assignees)Java (1.588 forks)batch import
good first issuehelp wantedresolution/acknowledgedtype/bug

Métricas do repositório

Stars
 (7.535 stars)
Métricas de merge de PR
 (Mesclagem média 2d 17h) (2 fundiu PRs em 30d)

Description

See #1391 (and this may be related to #699):

Testcontainers' image indexing code can't handle images that have SHA256 digests. We need a way to access the RepoDigests from docker-java's Image class. Unless I'm missing something, at the moment only RepoTags is mapped.

We would then modify RemoteDockerImage:

                List<Image> updatedImages = listImagesCmd.exec();
                updatedImages.stream()
                    .map(Image::getRepoTags)
                    .filter(Objects::nonNull)
                    .flatMap(Stream::of)
                    .map(DockerImageName::new)
                    .collect(Collectors.toCollection(() -> AVAILABLE_IMAGE_NAME_CACHE));

so that both Image::getRepoTags and Image::getRepoDigests are loaded into the cache. There's probably also some work to do around identity/equals/hashcode of DockerImageName objects in the cache.

EDIT 5 June 2020: We should also ensure that Image IDs are loaded into the cache - see #699.

Guia do colaborador