為何我的應用程式建立失敗?
您無法建立應用程式。 當您在 CLI 中執行 ibmcloud ce app create 指令或在主控台中部署應用程式時,應用程式建立未順利完成,並顯示 failed 或 revision failed 錯誤訊息。
如果您無法建立應用程式,請判斷下列其中一種情況是否為 true。
-
應用程式的名稱在專案內不是唯一的。 您收到包含
Application 'myapp' already exists within project 'myproj', please select a unique name.的錯誤訊息 -
您的應用程式名稱無效。 您收到包含
An application name must consist of lowercase alphanumeric characters, '-' and must start with an alphabetic character and end with an alphanumeric character.的錯誤訊息 -
如果您參照的映像檔不存在,則應用程式建立不會完成,且會發生錯誤。 您收到包含
Unable to pull the image的錯誤訊息。 -
如果您沒有存取參照映像檔的許可權,則應用程式建立不會完成,且會發生錯誤。 您收到包含
Unable to pull the image的錯誤訊息。 -
記憶體或 CPU 設定無效。 您會收到包含
memory parameter must be between .25 G and 32 G或cpu parameter must be between .0125 and 8.0的錯誤訊息。如需應用程式 Code Engine 限制的相關資訊,請參閱 Code Engine的應用程式限制和預設值。 -
已達到應用程式或應用程式修訂的資源配額,且未建立應用程式 (或應用程式修訂)。Code Engine 具有專案內應用程式及應用程式修訂的配額。 如需 Code Engine 限制的相關資訊,請參閱 專案配額。
-
如果應用程式的映像檔位於 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 ”
請嘗試這些解決方案之一。
-
若要判定應用程式名稱在專案內是否唯一,請使用
ibmcloud ce app list指令來列出所有已定義的應用程式,並檢查是否存在具有相同名稱的應用程式。 如果存在同名的應用程式,請使用ibmcloud ce app delete --name APP_NAME來刪除舊應用程式。 應用程式的名稱在專案內必須是唯一的。 -
若要確認應用程式名稱有效,請檢查應用程式名稱是否包含小寫英數字元 '-',以及名稱是否以英文字母開頭及結尾。
-
若要確認應用程式的映像檔存在,請檢閱錯誤訊息,以取得失敗的相關資訊。
a. 若要在 Code Engine中部署應用程式,您需要先建立容器映像檔,其中包含應用程式需要執行的所有執行時期構件,例如執行時期程式庫。 您可以使用許多不同的方法來建立映像檔,包括使用 Code Engine中提供的 建置容器映像檔 特性從原始碼建置應用程式。 您可以從公用或專用映像檔登錄下載映像檔。 如需存取專用登錄的相關資訊,請參閱 新增專用容器登錄的存取權。
b. 如果您在 Code Engine CLI 中使用
app create指令,請使用REGISTRY/NAMESPACE/REPOSITORY:TAG格式來指定用於應用程式的映像檔名稱,其中REGISTRY和TAG是選用項目。 如果未指定REGISTRY,則默認為docker.io。 如果未指定TAG,則默認為latest。 如需用來指定映像檔儲存庫之格式的相關資訊,請參閱ibmcloud ce app create指令。 -
若要確認您可以存取參照的映像檔,請驗證映像檔的位置,並確認您有權存取映像檔。
如果映像檔位於容器映像檔登錄中,例如 Docker Hub 或 IBM Cloud Container Registry,請檢查您是否已新增 Code Engine 的登錄存取權,以及是否使用正確的登錄密碼。 如需在容器映像檔登錄中使用映像檔的相關資訊,請參閱 新增對專用容器登錄的存取權。
-
如果您在
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選項。 -
如果您收到指出已超出資源配額的錯誤訊息,請先刪除應用程式或應用程式修訂,然後才能部署其他應用程式或應用程式修訂。
-
若要管理應用程式,請使用
ibmcloud ce app list指令來顯示現行專案中所有應用程式的清單。 視需要使用ibmcloud ce app delete指令來移除應用程式。 -
若要管理應用程式修訂,請使用
ibmcloud ce revision list指令來顯示所有應用程式修訂。
-
-
若要解決 Docker Hub 速率限制問題,您可以採取下列動作。
-
向 Docker Hub 進行鑑別,以增加速率限制。 請注意 Docker 速率限制。
-
從 Docker Hub 取回映像檔,並將映像檔發佈在不同的登錄中,例如 IBM Cloud® Container Registry。 然後,從新位置取回映像檔。
-
如果這些解決方案無法解決問題,為了進一步除錯,請嘗試擷取應用程式的日誌或系統事件資訊。 如需相關資訊,請參閱 如何取得應用程式的日誌 及 如何取得應用程式的系統事件資訊。
如需使用應用程式的相關資訊,請參閱 部署應用程式。