利用阿里雲拉取牆外鏡像
K8S很多鏡像都是國內無法拉取的,利用阿里的鏡像倉庫可以很容易拉取這些鏡像,我的方式如下:
1.創建存放Dockerfile
的倉庫
很簡單,直接創建一個倉庫用於存放Dockerfile
的倉庫,比如我的docker-ali-autobuild,經過不斷摸索,建議文件結構採用如下方式(即 image-name -> version -> Dockerfile)比較合理
Dockerfile
中直接使用FROM
指令引入我們所需要的鏡像即可,比如我這裏的quay.io/kubernetes-ingress-controller/nginx-ingress-controller:0.25.0
。
2.創建阿里雲鏡像倉庫並綁定代碼源
命名空間隨便搞,比如我這裏就是hhu
,然後創建對應鏡像的倉庫,代碼源選擇第一步創建的docker-ali-autobuild 即可,過程如下:
[外鏈圖片轉存失敗(img-w5BULPmh-1563537714051)(https://i.postimg.cc/Hnwfg5W9/image.gif)]
注:務必選中“使用海外機器構建”。
3.創建鏡像構建任務
由於結構原因我們不能使用阿里雲的自動構建的功能,但可以tag的方式來構建,創建tag並推送:
liuwg-a@liuwg-a-p01 MINGW64 /f/個人相關/docker-ali-autobuild (master)
$ git tag -a release-v0.25.0 -m "nginx-ingress-controller:0.25.0"
liuwg-a@liuwg-a-p01 MINGW64 /f/個人相關/docker-ali-autobuild (master)
$ git tag
release-v0.25.0
liuwg-a@liuwg-a-p01 MINGW64 /f/個人相關/docker-ali-autobuild (master)
$ git push origin release-v0.25.0
Enumerating objects: 1, done.
Counting objects: 100% (1/1), done.
Writing objects: 100% (1/1), 179 bytes | 89.00 KiB/s, done.
Total 1 (delta 0), reused 0 (delta 0)
To github.com:Jacksonary/docker-ali-autobuild.git
* [new tag] release-v0.25.0 -> release-v0.25.0
創建構建規則並開始構建
構建完成後,引用該鏡像即可從阿里雲拉取。
【附】:git tag
的簡單語法
- 創建tag:
git tag -a <tag-name> -m "some describe"
- 查看本地tag:
git tag
- 推送tag:
git push origin <tag-name>
- 本地刪除tag:
git tag -d <tag-name>
- 刪除遠程tag:
git push origin :refs/tags/<tag-name>