【备忘录】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>
相关推荐
qwy71522925816313 小时前
1-Docker Engine 安装前置环境配置
运维·docker·容器
sszdzq16 小时前
docker 安装 doris
运维·docker·容器
海的透彻19 小时前
docker容器进程探究
运维·docker·容器
❀͜͡傀儡师19 小时前
ShadowBroker:实时全球情报地图,开源情报(OSINT)的终极聚合平台
docker·容器·llama
.柒宇.20 小时前
MySQL双主同步
linux·数据库·mysql·docker
七夜zippoe21 小时前
DolphinDB安装部署:单机版快速上手
docker·安装部署·dolphindb·单机版·web gui
格林威21 小时前
工业相机 SDK 在 Docker 容器中的部署与权限配置(含 USB/GigE)
开发语言·人工智能·数码相机·计算机视觉·docker·容器·工业相机
快往胃里来21 小时前
Dify保姆级教程:部署、智能体、工作流到后端API
阿里云·docker
FelixBitSoul1 天前
Docker 镜像 SIZE、DISK USAGE、Layer、Prune、.dockerignore 全面解析:pull 到底下载多少?
docker
modelmd1 天前
Docker 重命名数据卷
运维·docker·容器