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