用docker
的都知道鏡像加速,經過配置阿里雲、騰訊雲的鏡像源確實能夠大幅提高docker pull
的效果,但對於某些不經常使用或新版的鏡像卻收效甚微。git
好比最近想要部署私有ExceptionLess服務,它的dockerfile使用了mcr.microsoft.com/dotnet/core/sdk:2.2.401
和mcr.microsoft.com/dotnet/core/aspnet:2.2
,這兩個鏡像拉取很是慢,只能使用手動tag
的方式來解決。docker
若是你有一臺國外的VPS,那很簡單;只需執行docker pull
、docker login
、docker tag
、docker push
就OK了。無奈個人VPS到期了,只能另尋它法,google以後從這篇文章找到靈感:使用從新打 tag 的方式,拉取 k8s.gcr.io 的鏡像。bash
使用第三方的CI、CD服務push
鏡像到國內私有倉庫中解決docker pull
過慢的問題,本例的CI-CD使用的是travis-ci,因爲本身使用了騰訊雲的容器服務,所以私有庫使用了騰訊雲提供的免費鏡像倉庫。fetch
image
的倉庫
.travis.yml
腳本文件
個人腳本文件以下ui
language: bash services: - docker sudo: required branches: only: - master script: - docker pull mcr.microsoft.com/dotnet/core/sdk:2.2.401 - docker pull mcr.microsoft.com/dotnet/core/aspnet:2.2 after_success: #登陸registry的用戶名是您的騰訊雲的帳號ID,密碼是您開通鏡像倉庫服務時設置的密碼 - sudo docker login --username=[ID] --password=[密碼] ccr.ccs.tencentyun.com - sudo docker tag mcr.microsoft.com/dotnet/core/sdk:2.2.401 ccr.ccs.tencentyun.com/dotnet-core/sdk:2.2.401 - sudo docker tag mcr.microsoft.com/dotnet/core/aspnet:2.2 ccr.ccs.tencentyun.com/dotnet-core/aspnet:2.2 - sudo docker push ccr.ccs.tencentyun.com/dotnet-core/sdk:2.2.401 - sudo docker push ccr.ccs.tencentyun.com/dotnet-core/aspnet:2.2
More Options
→Trigger build
的CUSTOM CONFIG
中粘貼寫好的.travis.yml
腳本並點擊Trigger custom build
job log
中看到腳本的執行結果