IBM Cloud Docs
为什么我的应用程序创建失败?

为什么我的应用程序创建失败?

无法创建应用程序。 在 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
    

    要修正错误,请将 --memory 选项设置为介于 128 Mi 与 32 Gi 之间,并将 --cpu 选项设置为介于 0.01 与 8.0 vCPU之间。

  6. 如果收到指示超出资源配额的错误消息,请先删除应用程序或应用程序修订版,然后才能部署其他应用程序或应用程序修订版。

  7. 要解决 Docker Hub 速率限制问题,您可以执行以下操作。

    • 向 Docker Hub 认证以提高速率限制。 请注意 Docker 速率限制

    • 从 Docker Hub 中拉取映像,并在其他注册表 (例如 IBM Cloud® Container Registry) 中发布该映像。 然后,从新位置提取图像。

如果这些解决方案无法解决您的问题,请尝试检索应用程序的日志或系统事件信息以进行进一步调试。 有关更多信息,请参阅 How do I get logs for my appsHow do I get system event information for my apps

有关使用应用程序的更多信息,请参阅 部署应用程序