使用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 推送镜像到远程仓库

 

 

转载于:https://my.oschina.net/u/260715/blog/1305294

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值