내 앱 작성에 실패하는 이유는 무엇입니까?

앱을 작성할 수 없습니다. CLI에서 ibmcloud ce app create 명령을 실행하거나 콘솔에 앱을 배치하는 경우 애플리케이션 작성이 완료되지 않고 failed 또는 revision 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 G 또는 cpu parameter must be between .0125 and 8.0이 포함된 오류 메시지를 수신합니다. 앱의 Code Engine 한계에 관한 자세한 정보는 Code Engine의 애플리케이션 한계와 기본값을 참조하십시오.

  6. 앱 또는 앱 개정에 대한 자원 할당량에 도달하여 앱(또는 앱 개정)이 작성되지 않았습니다. Code Engine에는 프로젝트 내 앱 및 앱 개정에 대한 할당량이 있습니다. Code Engine 한계에 대한 자세한 정보는 프로젝트 할당량을 참조하십시오.

  7. 앱의 이미지가 Docker 허브에 있고 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 허브 또는 IBM Cloud Container Registry 과 같은 컨테이너 이미지 레지스트리에 있는 경우 Code Engine 에 레지스트리 액세스를 추가하고 올바른 레지스트리 비밀 번호를 사용하고 있는지 확인합니다. 컨테이너 이미지 레지스트리의 이미지 작업에 대한 자세한 정보는 개인용 컨테이너 레지스트리에 대한 액세스 권한 추가를 참조하십시오.

  5. --memory 명령을 사용하여 --cpu 또는 app create 옵션을 지정하는 경우 올바른 값을 사용 중인지 확인하십시오. 다음 명령에서 --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 옵션을 128Mi - 32Gi 범위로 설정하고 --cpu 옵션을 0.01 - 8.0 vCPU 범위로 설정하십시오.

  6. 리소스 할당량이 초과되었음을 나타내는 오류 메시지를 수신하는 경우, 추가 앱 또는 앱 개정판을 배치하려면 먼저 앱 또는 앱 개정판을 삭제하십시오.

    • 앱을 관리하려면 ibmcloud ce app list 명령을 사용하여 현재 프로젝트에 있는 모든 앱의 목록을 표시하십시오. 필요에 따라 ibmcloud ce app delete 명령을 사용하여 앱을 제거하십시오.

    • 앱 개정을 관리하려면 ibmcloud ce revision list 명령을 사용하여 모든 앱 개정을 표시하십시오.

  7. Docker 허브 비율 한계 문제점을 해결하기 위해 다음 조치를 수행할 수 있습니다.

    • Docker 허브로 인증하여 비율 한계를 늘리십시오. Docker 비율 한계에 유의하십시오.

    • Docker Hub에서 이미지를 가져와서 다른 레지스트리 (예: IBM Cloud® Container Registry) 에 이미지를 공개하십시오. 그런 다음 새 위치에서 이미지를 가져오십시오.

이러한 솔루션이 문제점을 해결하지 못하는 경우, 추가 디버깅을 위해 앱에 관한 로그 또는 시스템 이벤트 정보를 검색하십시오. 자세한 정보는 내 앱의 로그를 가져오는 방법내 앱에 관한 시스템 이벤트 정보를 가져오는 방법을 참조하십시오.

앱 작업에 관한 자세한 정보는 앱 배치를 참조하십시오.