az containerapp up (또는up) 명령은 기존 이미지, 로컬 소스 코드 또는 GitHub 리포지토리에서 Azure Container Apps에서 앱을 배포하는 가장 빠른 방법입니다. 이 단일 명령만으로 몇 분 안에 컨테이너 앱을 바로 사용할 수 있습니다.
이 명령은 로컬 소스 코드 또는 GitHub 리포지토리를 제공할 때 컨테이너 이미지를 빌드하고 Azure Container Registry에 푸시할 수 있습니다. GitHub 리포지토리에서 작업하는 경우 이 명령은 GitHub 리포지토리에 변경 내용을 커밋할 때 새 컨테이너 이미지를 자동으로 빌드하고 푸시하는 GitHub Actions 워크플로를 만듭니다.
이 문서에서는 이 명령을 사용하여 기존 이미지, 로컬 소스 코드 및 GitHub 리포지토리에서 컨테이너 앱을 배포하는 방법을 보여줍니다.
필수 구성 요소
| 요구 사항 | 지시 |
|---|---|
| Azure 계정 | 계정이 없으면 무료 계정을 만듭니다. Azure 구독에는 기여자 또는 소유자 역할이 있어야 합니다. 자세한 내용은 Azure Portal을 사용하여 Azure 역할 할당을 참조하세요. |
| Azure 커맨드 라인 인터페이스 (CLI) | Azure CLI를 설치합니다. |
| GitHub 계정 | GitHub 리포지토리에서 이미지를 사용하려면 무료 GitHub 계정에 등록합니다. |
| 로컬 소스 코드 | 로컬 소스 코드에서 이미지를 만들려면 코드를 로컬 디렉터리에 배치합니다. |
| 기존 이미지 | 기존 이미지를 사용하려면 레지스트리 서버, 이미지 이름 및 태그를 기록해 둡다. 프라이빗 레지스트리를 사용하는 경우 자격 증명도 기록해 둡다. |
기존 리소스 사용
이 up 명령은 리소스를 만들거나 다음을 비롯한 기존 리소스를 사용할 수 있습니다.
- 리소스 그룹
- Container Registry.
- Container Apps 환경 및 Log Analytics 작업 영역.
- 귀하의 컨테이너 앱.
Container Apps 환경을 사용자 지정해야 하는 경우 먼저 명령을 사용하여 az containerapp env create 환경을 만들고 사용자 지정합니다. 사용자 지정된 환경을 지정할 때 up 명령을 실행하고 --environment 옵션을 사용해서 이를 설정합니다.
기존 환경을 지정하지 않으면 up 명령이 리소스 그룹에서 기존 환경을 찾습니다. 명령이 환경을 찾으면 해당 환경을 사용합니다. 명령이 환경을 찾지 못하면 Log Analytics 작업 영역이 포함된 환경을 만듭니다.
az containerapp up 명령 및 해당 옵션에 대한 자세한 내용은 az containerapp up을 참조하세요.
Azure CLI 환경 설정
Azure CLI를 사용하여 Azure에 로그인합니다.
az loginAzure CLI용 Container Apps 확장을 설치합니다.
az extension add --name containerapp --upgrade네임스페이스를
Microsoft.App등록합니다.az provider register --namespace Microsoft.AppMicrosoft.OperationalInsightsLog Analytics 작업 영역에 대한 공급자를 등록합니다.az provider register --namespace Microsoft.OperationalInsights
기존 이미지에서 배포
공용 또는 프라이빗 컨테이너 레지스트리에서 기존 이미지를 사용하는 컨테이너 앱을 배포할 수 있습니다. 프라이빗 레지스트리에서 배포하는 경우 , --registry-server및 --registry-username 옵션을 사용하여 자격 증명을 --registry-password제공해야 합니다.
다음 예제 코드를 사용하여 기존 이미지에서 컨테이너 앱을 배포할 수 있습니다. 명령을 실행하기 전에 꺾쇠 괄호로 묶인 자리 표시자를 값으로 바꿉니다.
az containerapp up \
--name <CONTAINER_APP_NAME> \
--image <REGISTRY_SERVER>/<IMAGE_NAME>:<TAG> \
--ingress external \
--target-port <PORT_NUMBER>
이 명령을 실행하면 다음 작업이 수행됩니다.
- 리소스 그룹을 만듭니다.
- 환경 및 Log Analytics 작업 영역을 만듭니다.
- 공용 레지스트리에서 이미지를 가져오는 컨테이너 앱을 만들고 배포합니다.
- 대상 포트를 지정된 값으로 설정하여
ingress컨테이너 앱의external값을 설정합니다.
명령을 사용하여 up 컨테이너 앱을 다시 배포할 수도 있습니다. 새 이미지로 다시 배포하려면 --image 옵션을 사용하여 새 이미지를 지정합니다.
--resource-group 및 --environment 옵션이 원래 배포의 값으로 설정되어 있는지 확인합니다.
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 명령을 사용하여 로컬 원본에서 배포하는 경우 컨테이너 이미지를 빌드하고, 레지스트리에 푸시하고, 컨테이너 앱을 배포합니다. 레지스트리를 지정하지 않으면 명령은 Container Registry에 레지스트리를 만듭니다.
명령은 Dockerfile을 사용하거나 사용하지 않고 이미지를 빌드할 수 있습니다. Dockerfile을 사용하지 않는 빌드에서는 다음 언어가 지원됩니다.
- .NET
- Node.js
- PHP
- Python
다음 예제 코드를 사용하여 로컬 소스 코드에서 컨테이너 앱을 배포할 수 있습니다.
az containerapp up \
--name <CONTAINER_APP_NAME> \
--source <SOURCE_DIRECTORY>\
--ingress external
이 명령을 실행하면 다음 작업이 수행됩니다.
- 리소스 그룹을 만듭니다.
- 환경 및 Log Analytics 작업 영역을 만듭니다.
- Container Registry에서 레지스트리를 만듭니다.
- 컨테이너 이미지가 있는 경우 Dockerfile을 사용하여 빌드합니다.
- 이미지를 레지스트리에 푸시합니다.
- 컨테이너 앱을 만들고 배포합니다.
Dockerfile에 EXPOSE 명령이 포함된 경우, up 명령은 Dockerfile의 정보를 사용하여 컨테이너 앱의 인그레스와 대상 포트를 구성합니다. 수신을 Dockerfile을 통해 구성하거나 앱에서 수신이 필요하지 않은 경우 --ingress 옵션을 생략할 수 있습니다.
명령의 출력에는 컨테이너 앱의 URL이 포함됩니다.
명령이 Cloud Build 에이전트를 기다리고 있다고 보고한 다음 응답을 중지하는 경우 GitHub 일시적인 오류가 문제의 원인일 수 있습니다. 상황을 해결하려면 명령을 다시 실행합니다.
오류가 발생하면 추가 정보를 가져오는 옵션을 사용하여 명령을 다시 --debug 실행할 수 있습니다. Dockerfile 없이 빌드가 실패하면 Dockerfile을 추가하고 명령을 다시 실행해 볼 수 있습니다.
az containerapp up 명령을 사용하여 업데이트된 이미지로 컨테이너 앱을 다시 배포하려면 --resource-group 및 --environment 옵션을 포함하세요. 로컬 소스 코드에서 컨테이너 앱을 다시 배포하려면 다음 단계를 수행합니다.
소스 코드를 변경합니다.
다음 명령을 실행합니다.
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 워크플로를 생성합니다. 레지스트리를 지정하지 않으면 명령은 Container Registry에 레지스트리를 만듭니다.
이미지를 빌드하려면 Dockerfile이 필요합니다. Dockerfile에 명령이 EXPOSE 포함된 경우 명령은 Dockerfile의 정보를 사용하여 컨테이너 앱의 수신 및 대상 포트를 구성합니다.
다음 예제 코드를 사용하여 GitHub 리포지토리에서 컨테이너 앱을 배포할 수 있습니다.
az containerapp up \
--name <CONTAINER_APP_NAME> \
--repo <GITHUB_REPOSITORY_URL> \
--ingress external
이 명령을 실행하면 다음 작업이 수행됩니다.
- 리소스 그룹을 만듭니다.
- 환경 및 Log Analytics 작업 영역을 만듭니다.
- Container Registry에서 레지스트리를 만듭니다.
- Dockerfile을 사용하여 컨테이너 이미지를 빌드합니다.
- 이미지를 레지스트리에 푸시합니다.
- 컨테이너 앱을 만들고 배포합니다.
- 향후 변경 내용이 GitHub 리포지토리에 푸시될 때 컨테이너 이미지를 빌드하고 컨테이너 앱을 배포하는 GitHub Actions 워크플로를 만듭니다.
서비스 주체를 만들 수 없어 명령이 실패하는 경우 Azure에서 서비스 주체를 수동으로 만들 수 있습니다. 그런 다음, 이에 대한 정보를 명령에 전달할 수 있습니다.
az containerapp up \
--name <CONTAINER_APP_NAME> \
--repo <GITHUB_REPOSITORY_URL> \
--service-principal-client-id "$SERVICE_PRINCIPAL_CLIENT_ID" \
--service-principal-client-secret "$SERVICE_PRINCIPAL_CLIENT_SECRET" \
--service-principal-tenant-id "$AZURE_TENANT_ID"
--ingress external
수신을 Dockerfile을 통해 구성하거나 앱에서 수신이 필요하지 않은 경우 --ingress 옵션을 생략할 수 있습니다.
이 up 명령은 GitHub Actions 워크플로를 만듭니다. 따라서 명령을 다시 실행하면 여러 워크플로를 만드는 원치 않는 효과가 발생합니다. 앱 이미지에 변경 내용을 배포하려면 명령을 다시 실행하지 않고 변경 내용을 GitHub 리포지토리에 푸시합니다. GitHub 워크플로는 리포지토리의 변경 내용을 자동으로 검색한 다음, 앱을 빌드하고 배포합니다. 워크플로를 변경하려면 GitHub에서 워크플로 파일을 편집합니다.
컨테이너 앱 설정 구성
이 az containerapp up 명령은 기본 설정을 주로 사용하는 컨테이너 앱을 만들고 배포하는 간소화된 방법을 제공합니다. 그러나 명령을 사용한 up 후 고급 설정을 구성하려면 다음 명령과 같은 다른 Azure CLI 명령을 실행해야 합니다.
- 분산 애플리케이션 런타임(Dapr):
az containerapp dapr enable - 비밀:
az containerapp secret set - 전송 프로토콜:
az containerapp ingress update
리소스 또는 크기 조정 설정과 같은 컨테이너 앱에 대한 다른 설정을 사용자 지정하려면 먼저 명령을 사용하여 up 컨테이너 앱을 배포합니다. 그런 다음, az containerapp update 명령을 사용하여 이러한 설정을 변경합니다. 이 az containerapp up 명령은 명령에 대한 az containerapp update 약어가 아닙니다.