如何获取使用 fabric8 maven 插件构建的 docker 图像详细信息?
how to get docker images details that are built using fabric8 maven plugin?
在我们的项目中,我们创建 docker 图像,使用 fabric8
maven 插件推送到注册表。我们有一个要求,我们需要找出在项目构建中创建的每个图像的详细信息(名称、标签、推送到的注册表等)。
fabric8
中是否有任何开箱即用的解决方案?或者我们是否有 java API 的 fabric8
可用,我们可以使用它们并将其集成到我们现有的 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 放入存储库管理器中,以帮助检索有关构建图像的信息,此外还可以对不同构建进行版本控制。
在我们的项目中,我们创建 docker 图像,使用 fabric8
maven 插件推送到注册表。我们有一个要求,我们需要找出在项目构建中创建的每个图像的详细信息(名称、标签、推送到的注册表等)。
fabric8
中是否有任何开箱即用的解决方案?或者我们是否有 java API 的 fabric8
可用,我们可以使用它们并将其集成到我们现有的 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 放入存储库管理器中,以帮助检索有关构建图像的信息,此外还可以对不同构建进行版本控制。