【备忘录】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>
相关推荐
AI云原生21 分钟前
openEuler软件生态体验——从桌面到服务器的全方位探索
运维·服务器·windows·macos·docker·云计算·腾讯云
真上帝的左手36 分钟前
3. 代码管理-构建工具-Maven
java·maven
CryptoRzz1 小时前
对接印度股票市场数据 (India api) 实时k线图表
java·开发语言·python·区块链·maven
爱网安的monkey brother1 小时前
Docker
docker·容器
人工智能训练1 小时前
openEuler系统中如何将docker安装在指定目录
运维·服务器·ubuntu·docker·容器·ai编程·openeuler
QH_ShareHub2 小时前
Docker 是什么?Docker 和 Conda 的区别
docker
德育处主任Pro2 小时前
『NAS』证件照自由,在群晖部署HivisionIDPhotos
docker·群晖·nas
元气满满-樱2 小时前
Docker部署WordPress开源项目
docker·容器·开源
凯子坚持 c2 小时前
Docker 容器全生命周期管理与实操深度解析
运维·docker·容器
ccmedu3 小时前
Docker 安装mysql8.0 主从同步
运维·docker·容器