В нашем проекте мы создаем образы докеров, помещаем их в реестр с помощью плагина fabric8
maven. У нас есть требование, в соответствии с которым нам нужно выяснить детали каждого образа (имя, тег , реестр, переданный в и т. д.), который создается в сборке проекта.
Есть ли какое-либо готовое решение в fabric8
для этого? или у нас есть какие-либо java API fabric8
, которые мы можем использовать и интегрировать в наш существующий плагин maven для получения такой информации?
как получить информацию об образах докеров, созданных с помощью плагина Fabric8 maven?
Ответы (1)
Насколько я знаю, получить такую информацию из самого плагина невозможно. Но при создании образов Docker с docker-maven-plugin
fabric8
в папке target/
по умолчанию создается иерархия, подобная следующей:
target
├── docker
│ ├── build.timestamp
│ └── my
│ └── registry
│ ├── image1
│ │ ├── tag1
│ │ │ ├── build
│ │ │ │ └── Dockerfile
│ │ │ ├── tmp
│ │ │ │ └── docker-build.tar
│ │ │ └── work
│ │ └── tag2
│ │ ├── build
│ │ │ └── Dockerfile
│ │ ├── tmp
│ │ │ └── docker-build.tar
│ │ └── work
│ ├── image2
│ │ ├── tag1
│ │ │ ├── ...
... ... ... ...
В этом примере было построено 3 образа:
my/registry/image1:tag1
my/registry/image1:tag2
my/registry/image2:tag1
Таким образом, просмотр этой иерархии может информировать вас об именах изображений, тегах и реестрах. Я согласен, что это не самое чистое решение.
В качестве альтернативы вы можете использовать dockerfile-maven-plugin
spotify
(https://github.com/spotify/dockerfile-maven), потому что он создает docker-info
JAR, содержащий то, что вы ищете:
META-INF/
META-INF/MANIFEST.MF
META-INF/docker/
META-INF/docker/my/registry/
META-INF/docker/my/registry/image1/
META-INF/docker/my/registry/image1/image-name
META-INF/docker/my/registry/image1/repository
META-INF/docker/my/registry/image1/tag
META-INF/docker/my/registry/image1/image-id
META-INF/maven/
META-INF/maven/my/registry/
META-INF/maven/my/registry/image1/
META-INF/maven/my/registry/image1/pom.xml
META-INF/maven/my/registry/image1/pom.properties
Затем этот docker-info
JAR можно поместить в менеджер репозитория, чтобы облегчить получение информации о построенных образах и, кроме того, для управления версиями ваших различных сборок.