io.fabric8 插件docker maven plugin的用法

逑和蔼
2023-12-01

鉴于在网上没有搜到一个完整实例,自己摸索后,记录如下:

1、当执行docker push命令将镜像push到registry服务上时,镜像的tag沿用本地的tag一并push到registry上,所以,你必须先确认本地镜像的tag名字是否合适,不合适,用docker tag命令改一下。

docker image tag rhel-httpd:latest registry-host:5000/myadmin/rhel-httpd:latest
docker image push registry-host:5000/myadmin/rhel-httpd:latest

具体见:https://docs.docker.com/engine/reference/commandline/push/

2、docker push命令执行需要认证。毕竟不是所有人都能向registry服务端push镜像,registry也需要対用户进行鉴权。docker客户端先登录registry(或含有该registry的认证),如先执行docker login,或者直接去改认证文件,不是本篇重点,不再话下。

3、插件io.fabric8 docker maven plugin 的用法:

			<plugin>
                <groupId>io.fabric8</groupId>
                <artifactId>docker-maven-plugin</artifactId>
                <version>0.33.0</version>
                <configuration>
                    <images>
                        <image>
                         <!-- 指定image的名字(包含registry地址)-->
                            <name>registry的地址/项目:${TAG}</name>
                             <!-- 别名为master,不关键-->
                            <alias>master</alias>
                            <build>
                            <!-- 指定dockerfile文件的位置-->
                                <dockerFile>dir/Dockerfile</dockerFile>
                                <buildOptions>
                                 <!-- 网络的配置,与宿主主机共端口号-->
                                    <network>host</network>
                                </buildOptions>
                            </build>
                        </image>
 					<!-- 生成多个image同理-->
                        <image>
              				...
                        </image>
                    </images>
                    <authConfig>
                     <!-- registry服务的认证-->
                        <username>认证的用户名</username>
                        <password>认证的密码</password>
                    </authConfig>
                </configuration>

                <executions>
                    <execution>
                        <id>docker-exec</id>
                         <!-- 绑定mvn install阶段,当执行mvn install时 就会执行docker build 和docker push-->
                        <phase>install</phase>
                        <goals>
                            <goal>build</goal>
                            <goal>push</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
 类似资料: