我有幾個在自托管運行器上使用矩陣的 GitHub Actions 作業。作為其中的一部分,他們需要用于測驗等的資料庫服務。作業定義看起來像這樣。
my-test-job:
name: test ${{ matrix.app }}
runs-on: self-hosted
strategy:
fail-fast: false
matrix:
app:
- alpha
- beta
- charlie
...
services:
postgres:
image: postgres:12.8
...
mysql:
image: mysql:5.7
...
redis:
image: redis:5.0
...
我發現所有 Docker 層都隨著每次矩陣運行而被拉下。因此,如果我有 3 個作業、5 個矩陣條目、3 個服務,并且每個服務映像需要拉 10 層,那么每次運行都會產生 450 個拉取請求。這最終導致我達到了我們的 Docker Hub 拉取限制。
有沒有辦法在自托管運行器之間共享 Docker 快取,或者在仍然使用自托管運行器的同時構建它的更好方法?
我不確定它是否相關,但自托管運行器是使用此模塊https://github.com/philips-labs/terraform-aws-github-runner配置的 EC2 實體。我似乎沒有使用 GitHub 托管的運行程式(ubuntu-latest)遇到這個問題。
謝謝!
uj5u.com熱心網友回復:
鑒于您已經在使用 AWS,并且您在 Docker Hub 上遇到了僅針對一個 GitHub 作業流程的速率限制,您可能只想考慮自己托管公共映像。如果您只在您的 AWS 區域內傳輸資料,則可以相當便宜地設定一個可公開訪問的AWS Elastic Container Registry實體。您可能還想考慮從Amazon ECR Public Gallery中提取您的影像。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/531741.html
