為何我的應用程式建立失敗?

您無法建立應用程式。 當您在 CLI 中執行 ibmcloud ce app create 指令或在主控台中部署應用程式時,應用程式建立未順利完成,並顯示 failedrevision failed 錯誤訊息。

如果您無法建立應用程式,請判斷下列其中一種情況是否為 true。

  1. 應用程式的名稱在專案內不是唯一的。 您收到包含 Application 'myapp' already exists within project 'myproj', please select a unique name. 的錯誤訊息

  2. 您的應用程式名稱無效。 您收到包含 An application name must consist of lowercase alphanumeric characters, '-' and must start with an alphabetic character and end with an alphanumeric character. 的錯誤訊息

  3. 如果您參照的映像檔不存在,則應用程式建立不會完成,且會發生錯誤。 您收到包含 Unable to pull the image 的錯誤訊息。

  4. 如果您沒有存取參照映像檔的許可權,則應用程式建立不會完成,且會發生錯誤。 您收到包含 Unable to pull the image 的錯誤訊息。

  5. 記憶體或 CPU 設定無效。 您會收到包含 memory parameter must be between .25 G and 32 Gcpu parameter must be between .0125 and 8.0的錯誤訊息。如需應用程式 Code Engine 限制的相關資訊,請參閱 Code Engine的應用程式限制和預設值

  6. 已達到應用程式或應用程式修訂的資源配額,且未建立應用程式 (或應用程式修訂)。Code Engine 具有專案內應用程式及應用程式修訂的配額。 如需 Code Engine 限制的相關資訊,請參閱 專案配額

  7. 如果應用程式的映像檔位於 Docker Hub 中,且您收到類似的錯誤訊息,指出您已達到 Docker 取回速率限制。

    429 Too Many Requests - Server message: toomanyrequests: You have reached your pull rate limit. You may increase the limit by authenticating and upgrading: https://www.docker.com/increase-rate-limit ”
    

請嘗試這些解決方案之一。

  1. 若要判定應用程式名稱在專案內是否唯一,請使用 ibmcloud ce app list 指令來列出所有已定義的應用程式,並檢查是否存在具有相同名稱的應用程式。 如果存在同名的應用程式,請使用 ibmcloud ce app delete --name APP_NAME 來刪除舊應用程式。 應用程式的名稱在專案內必須是唯一的。

  2. 若要確認應用程式名稱有效,請檢查應用程式名稱是否包含小寫英數字元 '-',以及名稱是否以英文字母開頭及結尾。

  3. 若要確認應用程式的映像檔存在,請檢閱錯誤訊息,以取得失敗的相關資訊。

    a. 若要在 Code Engine中部署應用程式,您需要先建立容器映像檔,其中包含應用程式需要執行的所有執行時期構件,例如執行時期程式庫。 您可以使用許多不同的方法來建立映像檔,包括使用 Code Engine中提供的 建置容器映像檔 特性從原始碼建置應用程式。 您可以從公用或專用映像檔登錄下載映像檔。 如需存取專用登錄的相關資訊,請參閱 新增專用容器登錄的存取權

    b. 如果您在 Code Engine CLI 中使用 app create 指令,請使用 REGISTRY/NAMESPACE/REPOSITORY:TAG 格式來指定用於應用程式的映像檔名稱,其中 REGISTRYTAG 是選用項目。 如果未指定 REGISTRY,則默認為 docker.io。 如果未指定 TAG,則默認為 latest。 如需用來指定映像檔儲存庫之格式的相關資訊,請參閱 ibmcloud ce app create 指令。

  4. 若要確認您可以存取參照的映像檔,請驗證映像檔的位置,並確認您有權存取映像檔。

    如果映像檔位於容器映像檔登錄中,例如 Docker Hub 或 IBM Cloud Container Registry,請檢查您是否已新增 Code Engine 的登錄存取權,以及是否使用正確的登錄密碼。 如需在容器映像檔登錄中使用映像檔的相關資訊,請參閱 新增對專用容器登錄的存取權

  5. 如果您在 app create 指令中指定 --memory--cpu 選項,請確認您使用的是有效值。 在下列指令中,指定給 --memory--cpu 的值無效; 例如,

    ibmcloud ce app create --name myapp  --image icr.io/codeengine/codeengine --memory 50Gi --cpu 20
    

    輸出範例

    Creating application 'myapp'...
    FAILED
    memory parameter must be between 128Mi and 32Gi
    cpu parameter must be between .01 and 8.0
    

    若要修正錯誤,請設定介於 128 Mi 與 32 Gi 之間的 --memory 選項,並設定介於 0.01 與 8.0 vCPU之間的 --cpu 選項。

  6. 如果您收到指出已超出資源配額的錯誤訊息,請先刪除應用程式或應用程式修訂,然後才能部署其他應用程式或應用程式修訂。

  7. 若要解決 Docker Hub 速率限制問題,您可以採取下列動作。

    • 向 Docker Hub 進行鑑別,以增加速率限制。 請注意 Docker 速率限制

    • 從 Docker Hub 取回映像檔,並將映像檔發佈在不同的登錄中,例如 IBM Cloud® Container Registry。 然後,從新位置取回映像檔。

如果這些解決方案無法解決問題,為了進一步除錯,請嘗試擷取應用程式的日誌或系統事件資訊。 如需相關資訊,請參閱 如何取得應用程式的日誌如何取得應用程式的系統事件資訊

如需使用應用程式的相關資訊,請參閱 部署應用程式