在我们的项目中,我们创建docker镜像,使用fabric8
maven插件推送到注册表。我们有一个需求,我们需要找出在项目构建中创建的每个图像的详细信息(名称,标签,推送到注册表等)。
是否有fabric8
中的任何现成解决方案?还是我们有可用的fabric8
Java API,我们可以使用它们并将其集成到我们现有的maven插件中以获得此类信息?
最佳答案
据我所知,没有办法从插件本身获取此类信息。但是,当使用fabric8
的docker-maven-plugin
构建Docker镜像时,默认情况下会在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
因此,浏览此层次结构可以使您了解图像名称,标签和注册表。我同意这不是最干净的解决方案。
另外,您可以使用
spotify
的dockerfile-maven-plugin
(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放入存储库管理器中,以帮助检索有关已构建镜像的信息,此外还可以对不同的构建进行版本控制。关于maven - 如何获取使用fabric8 maven插件构建的Docker图像详细信息?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51067663/