各种网络原因,或是docker.io无法访问,或是阿里的镜像源故障,导致java打包发布的时候报错,很影响代码发布的质量。
解决思路:墙出去把jdk下载下来,代码使用本地的harbor库进行引用,一劳永逸。此解决方法也适用于国外优质不频繁变动的镜像源的本地化使用。
解决方法
1. 墙出去,把需要的jdk下载到本地
docker pull openjdk:8-jdk-alpine
2.登录本地harbor仓库 hb.***.com , 记得harbor上创建项目 jdk
docker login -u [user] -p[password] hb.***.com
3. image 打tag
docker tag [LOCAL_IMAGE]:[TAG] [HARBOR_DOMAIN]/[PROJECT]/[REPOSITORY]:[TAG]`
例:
docker tag openjdk:8-jdk-alpine hb.***.com/jdk/openjdk:8-jdk-alpine
4. docker push到harbor仓库
docker push [HARBOR_DOMAIN]/[PROJECT]/[REPOSITORY]:[TAG]
例:
docker push hb.***.com/jdk/openjdk:8-jdk-alpine
5. Dockerfile引用:
FROM hb.***.com/jdk/openjdk:8-jdk-alpine
NOTE
如果harbor是没有绑定域名,属于IP的情况,注意需要在docker daemon做一下ssl证书信任和镜像库注册。
daemon.json
{"insecure-registries": ["https://192.xxx.xxx.xxx"],"registry-mirrors": ["https://192.xxx.xxx.xxx"]
}