使用maven插件構建docker鏡像並推送到阿里鏡像倉庫


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 推送鏡像到遠程倉庫

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM