重磅!GitHub 推出容器鏡像倉庫服務!
微軟收購了 GitHub 之后,并沒有破壞 GitHub 的中立性,而是不斷給開發(fā)者帶來驚喜,從 GitHub Actions,到 GitHub Package Registry[1],Github 依舊是原來的那個 GitHub。
自從 GitHub Package Registry[2] 發(fā)布以來,已經(jīng)有數(shù)億個包被下載,其中 Docker 是僅次于 npm 的第二大流行的包管理工具,用戶越來越傾向于使用容器、Kubernetes 和其他云原生技術來管理應用的生命周期。
雖然 GitHub Packages 已經(jīng)為我們提供了強大的軟件供應鏈的可追溯性,但在開發(fā)體驗方面還做的不夠好。現(xiàn)在 GitHub 單獨推出了容器鏡像倉庫服務(GitHub Container Registry),改善了 GitHub Packages 對容器支持的不足,準備向 Docker Hub[3] 發(fā)起挑戰(zhàn)。
GitHub 容器鏡像倉庫服務提供了公共鏡像和私有鏡像,和 Docker Hub 一樣,公共鏡像是免費的,可以匿名拉取。私有鏡像現(xiàn)階段(測試階段)是免費的,正式上線后將和 GitHub Package Registry 采用相同的定價模式。
另外,GitHub 容器鏡像倉庫服務的域名是 ghcr.io,不知道 gcr.io 會作何感想。
如果你無法拉取 gcr.io 的鏡像,可以在公眾號后臺回復 gcr 獲取鏡像加速服務。
下面來教大家如何登陸 GitHub 容器鏡像倉庫服務:
創(chuàng)建 token
① 在 GitHub 任何頁面的右上角,單擊你的頭像,然后單擊 Settings。
② 在左側(cè)邊欄中,單擊 Developer settings。
③ 在左側(cè)邊欄中,單擊 Personal access tokens。
④ 單擊 Generate new token。
⑤ 輸入 token 名稱
⑥ 選擇 read:packages 以下載容器鏡像,讀取元數(shù)據(jù);選擇 write:packages 以下載上傳容器鏡像,讀取寫入元數(shù)據(jù);選擇 delete:packages 以刪除容器鏡像。
登錄鏡像倉庫
將之前創(chuàng)建的 token 保存為環(huán)境變量:
$ export CR_PAT=YOUR_TOKEN
登錄鏡像倉庫,用戶名使用 GitHub 的用戶名:
$ echo $CR_PAT | docker login ghcr.io -u USERNAME --password-stdin
> Login Succeeded
然后就可以愉快地 push 私有鏡像了。你也可以選擇將 GitHub Actions 中的 registry 換成 ghcr.io,享受 GitHub 帶來的一條龍服務,例如:
name: ci
on:
push:
branches: master
jobs:
login:
runs-on: ubuntu-latest
steps:
-
name: Checkout
uses: actions/checkout@v2
-
name: Login to GitHub Package Registry
uses: docker/login-action@v1
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GHCR_TOKEN }}
最后,GitHub 容器鏡像倉庫服務未來還計劃支持更多的云原生功能,包括 Helm 應用商店以及支持除了 Docker 鏡像之外的其他類型存儲。
Hacker News 的某位讀者評論一語道破天機:如果微軟推出容器服務,有些人是不會買的。但是,GitHub 的容器服務,他們就會買。我認為,這就是微軟收購 GitHub 的部分原因。
參考資料
GitHub Package Registry: https://github.com/features/packages
[2]GitHub Package Registry: https://github.com/features/packages
[3]Docker Hub: https://hub.docker.com/
往期推薦
更多關于云原生相關資訊
推薦關注

