Предполагается, что у вас есть следующий файл docker-compose.yml:
version: "3"
services:
image-a:
build:
context: .
dockerfile: Dockerfile-a
image-b:
build:
context: .
dockerfile: Dockerfile-b
Создайте свои изображения с помощью команды docker-compose --project-name foo build
. Это заставит имя всех изображений начинаться с префикса foo_
. Таким образом, вы получите следующие имена изображений:
Хитрость заключается в использовании уникального идентификатора (например, вашего идентификатора задания CI) вместо foo
, чтобы вы могли идентифицировать только что созданные изображения.
Теперь, когда вы знаете имена ваших изображений, вы можете использовать:
container-structure-test test --image foo_image-a --config config.yaml
container-structure-test test --image foo_image-b --config config.yaml
Если вы хотите выполнить какое-то общее задание, которое не знает названия службы составления докера, вы можете использовать следующую команду, чтобы получить список изображений, начинающихся с этого префикса foo_
:
docker image list --filter "reference=foo_*"
REPOSITORY TAG IMAGE ID CREATED SIZE
foo_image-a latest 0c5e1cf8c1dc 16 minutes ago 4.15MB
foo_image-b latest d4e384157afb 16 minutes ago 4.15MB
и если вы хотите, чтобы скрипт перебирал этот результат, добавьте параметр --quiet
, чтобы получить только идентификатор изображений:
docker image list --filter "reference=foo_*" --quiet
0c5e1cf8c1dc
d4e384157afb