【备忘录】docker-maven-plugin 使用

在使用docker-maven-plugin 插件时,经常会碰到一些奇怪的问题:

比如:

1、docker远程访问时,认证安全问题?

2、dockerHost 访问地址准确性?

3、需要多个tag时如何处理?

4、push 到仓库时,需要保留历史记录问题?

反正各种问题,没有找到任何相关资源能完整的说明,踩坑之后备忘,重点内容直接详细注释说明:

shell 复制代码
<!--使用docker-maven-plugin插件-->
<plugin>
    <groupId>com.spotify</groupId>
    <artifactId>docker-maven-plugin</artifactId>
    <version>1.2.2</version>
    <configuration>
        <imageName>${project.artifactId}:${project.version}</imageName>
        <!-- 指定 Dockerfile 路径-->
        <dockerDirectory>${basedir}</dockerDirectory>
        <!-- 这里的tag会在build环境中打上,支持多个tag-->
        <imageTags>
            <imageTag>latest</imageTag>
        </imageTags>
        <!-- 根据认证的情况,确保是否时http或https,默认2375对应http,2376对应https-->
        <dockerHost>https://x.x.x.x:2376</dockerHost>
        <!--如果docker 已经做的安装认证,这里需要放认证客户端访问需要的几个文件:默认:ca.key,cert.pem,key.pem-->
        <!--注意几个文件的名称必须为如上几个默认的名称,比如把上面几个文件放在:/home/xxxx/cert-->
        <dockerCertPath>/home/xxxx/cert</dockerCertPath>
    <executions>
        <execution>
            <id>build-image</id>
            <phase>package</phase>
            <goals>
                <goal>build</goal>
            </goals>
        </execution>
        <execution>
            <id>tag-image</id>
            <phase>package</phase>
            <goals>
                <goal>tag</goal>
            </goals>
            <configuration>
                <image>${project.artifactId}:${project.version}</image>
                <newName>${docker.repostory}/${docker.registry.namespace}/${project.artifactId}:latest</newName>
            </configuration>
        </execution>
        <execution>
            <id>push-image</id>
            <phase>verify</phase>
            <goals>
                <goal>push</goal>
            </goals>
            <configuration>
                <!--如果有设置maven settting,这里是setting中的server id,如果自己的私服,也可以是任意值,请根据实际配置-->
                <serverId>${docker.serverId}</serverId>
                <imageName>${docker.repostory}/${docker.registry.namespace}/${project.artifactId}:latest</imageName>
                <!--这里就可以在push 多个tag到仓库,注意前提是已经存在该tag的image-->
                <imageTags>
                    <imageTag>${project.version}</imageTag>
                    <imageTag>latest</imageTag>
                </imageTags>
            </configuration>
        </execution>
    </executions>
</plugin>
相关推荐
DarkAthena1 小时前
【Docker】定制化构建一个可以运行GaussDB的kylinv10sp3系统的docker镜像
数据库·docker·容器·gaussdb
..Move...7 小时前
Docker镜像制作
运维·docker·容器
朝新_12 小时前
【SpringBoot】详解Maven的操作与配置
java·spring boot·笔记·后端·spring·maven·javaee
行思理13 小时前
Docker 应该如何学习 分四个阶段
学习·docker·容器
..Move...14 小时前
Docker应用部署tomcat和nginx
nginx·docker·tomcat
虾说羊15 小时前
最细Maven教程以及Maven私服搭建
java·数据库·maven
如果丶可以坑16 小时前
maven无法获取依赖问题
java·maven·1024程序员节
Jenwein17 小时前
Linux中使用docker的网络问题
后端·docker
I'm Jie18 小时前
(二)Gradle 依赖仓库及安全凭证配置
java·spring boot·spring·gradle·maven
java_logo18 小时前
Docker 部署 Debian 全流程教程
linux·运维·docker·容器·debian