【备忘录】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>
相关推荐
JeJe同学12 小时前
Docker镜像导入、容器启动
linux·运维·docker
元Y亨H17 小时前
基于 Jenkins + Docker 的前端(Vben Admin)CI/CD 踩坑
docker·jenkins
白兰地空瓶18 小时前
项目要上线了,我连夜学完 Docker:从底层原理到容器化部署全记录
docker·全栈
Knight_AL20 小时前
PostgreSQL Docker 数据库备份:pg_dump 与 SQL 格式备份的区别
数据库·docker·postgresql
灯澜忆梦21 小时前
【docker】#1 | Docker 初识
运维·docker·容器
骑着蜗牛撵大象3271 天前
穿越 Docker 内核迷雾:镜像分层的叠加态与卷挂载的空间穿梭
运维·docker·容器·联合文件系统·卷挂载·镜像分层·存储驱动
goehou1 天前
AI 应用上线实战:从本地脚本到 Docker 容器化(密钥、健康检查、镜像瘦身)
docker·ai·llm·部署·教程·容器化
吴声子夜歌1 天前
Docker入门与实战——Docker数据管理
docker·容器
程序员老赵1 天前
Docker 部署 TeslaMate:轻松搭建特斯拉车辆数据记录平台
docker·容器·开源
java_logo1 天前
Docker 部署 Emby:轻松搭建家庭影音媒体服务器
服务器·docker·nas·emby·飞牛nas·群晖nas·轩辕镜像