欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

使用maven插件构建docker镜像并推送到阿里镜像仓库

程序员文章站 2022-06-18 19:50:36
...

1、阿里云镜像仓库

阿里云提供了docker镜像仓库,可以上传私有的镜像

2、com.spotify 提供的docker构建插件 docker-maven-plugin

<plugin>
    <groupId>com.spotify</groupId>
    <artifactId>docker-maven-plugin</artifactId>
</plugin>

3、window docker

需要启用 Hyper-V 功能,然后安装docker

具体配置:

1、maven docker-maven-plugin 插件

<plugin>
    <groupId>com.spotify</groupId>
    <artifactId>docker-maven-plugin</artifactId>

    <configuration>
        <serverId>docker-aliyun</serverId>
        <registryUrl>registry.cn-hangzhou.aliyuncs.com</registryUrl>

        <baseImage>java:8</baseImage>
        <entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint>

        <imageName>registry.cn-hangzhou.aliyuncs.com/company/image-name</imageName>

        <resources>
            <resource>
                <targetPath>/</targetPath>
                <directory>${project.build.directory}</directory>
                <include>${project.build.finalName}.jar</include>
            </resource>
        </resources>
    </configuration>
</plugin>

2、修改 ~/.docker/config.json 配置文件

{
    "auths": {
        "registry.cn-hangzhou.aliyuncs.com": {}
    },
    "credsStore": "wincred"
}

将以上配置的 "credsStore":"wincred" 去掉,这样在登陆后会将认证保存在此文件中,不然 docker-maven-plugin 获取不到认证信息,导致推送镜像失败

3、在 PowerShell 或 CMD 中登陆 阿里云 docker registry

在阿里云创建仓库后,点击管理可以看到操作指引,比如 登陆、推送、拉取等,登陆命令为:

docker login [email protected] registry.cn-hangzhou.aliyuncs.com
完了之后输入开通镜像仓库 namespace 时输入的密码,完成登陆,登陆之后 ~/.docker/config.json 类似
{
    "auths": {
        "registry.cn-hangzhou.aliyuncs.com": {
            "auth": "ZG9ja2VyQDM2MGVkaW******UAxODU2ODMyNjA0MDgzODA5OkRIQDM2MGVkaWFuIzIwMTch"
        }
    }
}

其中 auth 就是保存的认证信息

4、现在就可以使用maven命令进行打包推送了

mvn clean package docker:push

完成后可在阿里云中镜像仓库查看,可以在其他地方使用该镜像。

com.spotify:docker-maven-plugin 常用操作有:

docker:build 仅构建docker镜像(不推送)

docker:push 推送镜像到远程仓库