다음을 통해 공유


az containerapp up 명령을 사용하여 Azure Container Apps 배포

az containerapp up(또는 up) 명령은 기존 이미지, 로컬 소스 코드 또는 GitHub 리포지토리에서 Azure Container Apps에 앱을 배포하는 가장 빠른 방법입니다. 이 단일 명령을 사용하면 몇 분 안에 컨테이너 앱을 준비하고 실행할 수 있습니다.

az containerapp up 명령은 주로 기본 설정을 사용하는 컨테이너 앱을 만들고 배포하는 간소화된 방법입니다. 그러나 고급 설정을 구성하려면 다른 CLI 명령을 실행해야 합니다.

컨테이너 앱의 리소스 또는 크기 조정 설정을 사용자 지정하려면up 명령과 az containerapp update 명령을 사용하여 이러한 설정을 변경할 수 있습니다. az containerapp up 명령은 az containerapp update 명령의 약어가 아닙니다.

up 명령은 다음을 포함한 기존 리소스를 만들거나 사용할 수 있습니다.

  • Resource group
  • Azure Container Registry
  • Container Apps 환경 및 Log Analytics 작업 영역
  • Container App

명령은 로컬 소스 코드 또는 GitHub 리포지토리를 제공할 때 컨테이너 이미지를 빌드하고 ACR(Azure Container Registry)에 푸시할 수 있습니다. GitHub 리포지토리에서 작업하는 경우 GitHub 리포지토리에 변경 내용을 커밋할 때 새 컨테이너 이미지를 자동으로 빌드하고 푸시하는 GitHub Actions 워크플로를 만듭니다.

Container Apps 환경을 사용자 지정해야 하는 경우 먼저 az containerapp env create 명령을 사용하여 환경을 만듭니다. 기존 환경을 제공하지 않으면 up 명령은 리소스 그룹에서 환경을 찾고, 찾은 경우 해당 환경을 사용합니다. 찾을 수 없는 경우 Log Analytics 작업 영역이 있는 환경을 만듭니다.

az containerapp up 명령에 대한 자세한 내용은 az containerapp up를 참조하세요.

필수 조건

요구 사항 지침
Azure 계정 계정이 없으면 무료 계정을 만듭니다. 계속 진행하려면 Azure 구독에 대한 기여자 또는 소유자 권한이 필요합니다. 자세한 내용은 Azure Portal을 사용하여 Azure 역할 할당을 참조하세요.
GitHub 계정 GitHub 리포지토리를 사용하는 경우 무료로 가입하세요.
Azure CLI Azure CLI를 설치합니다.
로컬 소스 코드 로컬 소스 코드를 사용하는 경우 로컬 소스 코드 디렉터리가 있어야 합니다.
기존 이미지 기존 이미지를 사용하는 경우 레지스트리 서버, 이미지 이름 및 태그가 필요합니다. 프라이빗 레지스트리를 사용하는 경우 인증 정보가 필요합니다.

설정

  1. Azure CLI를 사용하여 Azure에 로그인합니다.

    az login
    
  2. 다음으로, CLI용 Azure Container Apps 확장을 설치합니다.

    az extension add --name containerapp --upgrade
    
  3. 현재 확장 또는 모듈이 설치되었으므로 Microsoft.App 네임스페이스를 등록합니다.

    az provider register --namespace Microsoft.App
    
  4. Azure Monitor Log Analytics 작업 영역에 대한 Microsoft.OperationalInsights 공급자를 등록합니다.

    az provider register --namespace Microsoft.OperationalInsights
    

기존 이미지에서 배포

공용 또는 프라이빗 컨테이너 레지스트리에서 기존 이미지를 사용하는 컨테이너 앱을 배포할 수 있습니다. 프라이빗 레지스트리에서 배포하는 경우 --registry-server, --registry-username--registry-password 옵션을 사용하여 자격 증명을 제공해야 합니다.

이 예제에서 az containerapp up 명령은 다음 작업을 수행합니다.

  1. 리소스 그룹을 만듭니다.
  2. 환경 및 Log Analytics 작업 영역을 만듭니다.
  3. 공용 레지스트리에서 이미지를 가져오는 컨테이너 앱을 만들고 배포합니다.
  4. 대상 포트가 지정된 값으로 설정된 상태에서 컨테이너 앱의 수신을 외부로 설정합니다.

다음 명령을 실행하여 기존 이미지에서 컨테이너 앱을 배포합니다. <자리 표시자>를 해당 값으로 바꿉니다.

az containerapp up \
  --name <CONTAINER_APP_NAME> \
  --image <REGISTRY_SERVER>/<IMAGE_NAME>:<TAG> \
  --ingress external \
  --target-port <PORT_NUMBER> 

up 명령을 사용하여 컨테이너 앱을 다시 배포할 수 있습니다. 새 이미지로 다시 배포하려면 --image 옵션을 사용하여 새 이미지를 지정합니다. --resource-groupenvironment 옵션이 원래 배포와 동일한 값으로 설정되어 있는지 확인합니다.

az containerapp up \
  --name <CONTAINER_APP_NAME> \
  --image <REGISTRY_SERVER>/<IMAGE_NAME>:<TAG> \
  --resource-group <RESOURCE_GROUP_NAME> \
  --environment <ENVIRONMENT_NAME> \
  --ingress external \
  --target-port <PORT_NUMBER> 

로컬 소스 코드에서 배포

up 명령을 사용하여 로컬 원본에서 배포하는 경우 컨테이너 이미지를 빌드하고, 레지스트리에 푸시하고, 컨테이너 앱을 배포합니다. 레지스트리를 제공하지 않으면 Azure Container Registry에서 레지스트리를 만듭니다.

명령은 Dockerfile을 사용하거나 사용하지 않고 이미지를 빌드할 수 있습니다. Dockerfile 없이 빌드하는 경우 다음 언어가 지원됩니다.

  • .NET
  • Node.js
  • PHP
  • Python

다음 예제에서는 로컬 소스 코드에서 컨테이너 앱을 배포하는 방법을 보여줍니다.

이 예제에서 az containerapp up 명령은 다음 작업을 수행합니다.

  1. 리소스 그룹을 만듭니다.
  2. 환경 및 Log Analytics 작업 영역을 만듭니다.
  3. Azure Container Registry에서 레지스트리 만들기
  4. 컨테이너 이미지를 빌드합니다(있는 경우 Dockerfile 사용).
  5. 이미지를 레지스트리에 푸시합니다.
  6. 컨테이너 앱을 만들고 배포합니다.

다음 명령을 실행하여 로컬 소스 코드에서 컨테이너 앱을 배포합니다.

    az containerapp up \
      --name <CONTAINER_APP_NAME> \
      --source <SOURCE_DIRECTORY>\
      --ingress external 

Dockerfile에 EXPOSE 명령이 포함된 경우 up 명령은 Dockerfile의 정보를 사용하여 컨테이너 앱의 수신 및 대상 포트를 구성합니다.

Dockerfile을 통해 수신을 구성했거나 앱에 수신이 필요하지 않은 경우 ingress 옵션을 생략할 수 있습니다.

명령의 출력에는 컨테이너 앱의 URL이 포함됩니다.

오류가 있는 경우 오류에 대한 자세한 정보를 가져오는 --debug 옵션을 사용하여 명령을 다시 실행할 수 있습니다. Dockerfile 없이 빌드가 실패하면 Dockerfile을 추가하고 명령을 다시 실행해 볼 수 있습니다.

az containerapp up 명령을 사용하여 업데이트된 이미지로 컨테이너 앱을 다시 배포하려면 --resource-group--environment 인수를 포함합니다. 다음 예제에서는 로컬 소스 코드에서 컨테이너 앱을 다시 배포하는 방법을 보여줍니다.

  1. 소스 코드를 변경합니다.

  2. 다음 명령을 실행합니다.

    az containerapp up \
      --name <CONTAINER_APP_NAME> \
      --source <SOURCE_DIRECTORY> \
      --resource-group <RESOURCE_GROUP_NAME> \
      --environment <ENVIRONMENT_NAME>
    

GitHub 리포지토리에서 배포

az containerapp up 명령을 사용하여 GitHub 리포지토리에서 배포하는 경우 컨테이너 이미지를 빌드하고, 레지스트리에 푸시하고, 컨테이너 앱을 배포하는 GitHub Actions 워크플로를 생성합니다. 이 명령은 레지스트리를 제공하지 않으면 Azure Container Registry 만듭니다.

이미지를 빌드하려면 Dockerfile이 필요합니다. Dockerfile에 EXPOSE 명령이 포함된 경우 명령은 Dockerfile의 정보를 사용하여 컨테이너 앱의 수신 및 대상 포트를 구성합니다.

다음 예제에서는 GitHub 리포지토리에서 컨테이너 앱을 배포하는 방법을 보여줍니다.

이 예제에서 az containerapp up 명령은 다음 작업을 수행합니다.

  1. 리소스 그룹을 만듭니다.
  2. 환경 및 Log Analytics 작업 영역을 만듭니다.
  3. Azure Container Registry에서 레지스트리 만들기
  4. Dockerfile을 사용하여 컨테이너 이미지를 빌드합니다.
  5. 이미지를 레지스트리에 푸시합니다.
  6. 컨테이너 앱을 만들고 배포합니다.
  7. 향후 변경 내용이 GitHub 리포지토리에 푸시될 때 컨테이너 이미지를 빌드하고 컨테이너 앱을 배포하는 GitHub Actions 워크플로를 만듭니다.

GitHub 리포지토리에서 앱을 배포하려면 다음 명령을 실행합니다.

az containerapp up \
  --name <CONTAINER_APP_NAME> \
  --repo <GitHub repository URL> \
  --ingress external 

Dockerfile을 통해 수신을 구성했거나 앱에 수신이 필요하지 않은 경우 ingress 옵션을 생략할 수 있습니다.

up 명령은 GitHub Actions 워크플로를 만들기 때문에 변경 내용을 앱의 이미지에 배포하도록 다시 실행하면 여러 워크플로를 만드는 데 원치 않는 영향을 미칩니다. 대신 변경 내용을 GitHub 리포지토리에 푸시하면 GitHub 워크플로가 자동으로 앱을 빌드하고 배포합니다. 워크플로를 변경하려면 GitHub에서 워크플로 파일을 편집합니다.

다음 단계