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 --username=ali_account@company.com 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 推送镜像到远程仓库

 

posted on 2021-06-15 17:25  肖建锋  阅读(1204)  评论(0编辑  收藏  举报