為何因為映像檔取回鑑別而導致建置錯誤?

虛擬專用雲端 經典基礎設施

當來自 Operator Hub 或內建開發者內容目錄等建置程序嘗試從註 Red Hat 冊表拉取映像時,建置可能會因驗證錯誤而失敗,錯誤訊息類似如下所示。

error: build error: After retrying 2 times, Pull image still failed due to error: unauthorized: authentication required

預設情況下,您的叢集會設定為使用映像拉取密鑰存取 Red Hat 註冊表,例如 registry.redhat.io GitHub、Docker registry.connect.redhat.com Hub 和 cloud.openshift.com Amazon Registry。 此外,在專案 default 中,您的叢集擁有用於存取註 <region>.icr.io 冊表的映像拉取 IBM Cloud Container Registry 機密。

不過,如果操作員或內建範本具有必須從專用登錄取回映像檔的建置元件,則建置可能會因鑑別錯誤而失敗,因為建置無法存取其服務帳戶中的預設映像檔取回密碼。 依預設,建置可以取回僅儲存在內部登錄中的映像檔。

設定具有映像檔存取權的建置,方法是從專用登錄取回映像檔,或將映像檔從專用登錄匯入內部登錄。

如需相關資訊,請參閱 Red Hat OpenShift 文件

  1. 請檢查建置配置檔,以查看建置需要具備取回存取權的登錄。 例如,如果您的建置是 Red Hat OpenShift 範本的一部分,則建置配置 spec.strategy.sourceStrategy.from.name 值會參照 registry.redhat.io 專用登錄。

    oc -n openshift get template react-web-app-example -o yaml
    

    輸出範例

    strategy:
      sourceStrategy:
        from:
          kind: DockerImage
          name: registry.redhat.io/rhoar-nodejs-tech-preview/rhoar-nodejs-10-webapp
    
  2. 設定具有映像檔取回存取權的建置。 您可以選擇從專用登錄取回映像檔,或使用內部登錄中的映像檔串流。