다음을 통해 공유


Azure에서 컨테이너화된 Python 웹앱 빌드

자습서 시리즈의 이 부분에서는 Docker를 로컬로 설치하지 않고 Azure Container Registry 에서 직접 컨테이너화된 Python 웹앱을 빌드하는 방법을 알아봅니다. Azure에서 Docker 이미지를 빌드하는 것은 이미지를 로컬로 만든 다음 Azure Container Registry에 푸시하는 것보다 더 빠르고 쉬운 경우가 많습니다. 또한 클라우드 기반 이미지 빌드를 사용하면 개발 환경에서 Docker를 실행할 필요가 없습니다.

App Service를 사용하면 컨테이너화된 웹앱을 실행하고 Docker Hub, Azure Container Registry 및 Visual Studio Team Services의 CI/CD(연속 통합/지속적인 배포) 기능을 통해 배포할 수 있습니다. 이 문서는 Python 웹앱을 컨테이너화하고 Azure App Service에 배포하는 방법에 대한 5부로 구성된 자습서 시리즈의 3부입니다. 자습서의 이 부분에서는 Azure에서 컨테이너화된 Python 웹앱을 빌드하는 방법을 알아봅니다.

Azure App Service를 사용하면 Docker Hub, Azure Container Registry 및 Azure DevOps와 같은 플랫폼에서 CI/CD 파이프라인을 사용하여 컨테이너화된 웹앱을 배포하고 실행할 수 있습니다. 이 문서는 5부로 구성된 자습서 시리즈의 3부입니다.

이 자습서 시리즈의 2부에서는 컨테이너 이미지를 로컬로 빌드하고 실행했습니다. 반면, 자습서의 이 부분에서는 동일한 Python 웹앱을 Azure Container Registry의 Docker 이미지에 직접 빌드(컨테이너화)합니다. Azure에서 이미지를 빌드하는 것은 일반적으로 로컬로 빌드한 다음 레지스트리에 이미지를 푸시하는 것보다 더 빠르고 쉽습니다. 또한 클라우드에서 빌드해도 Docker가 개발 환경에서 실행될 필요가 없습니다.

Docker 이미지가 Azure Container Registry에 있으면 Azure App Service에 배포할 수 있습니다.

이 서비스 다이어그램은 이 문서에서 다루는 구성 요소를 강조 표시합니다.

자습서 - Azure의 컨테이너화된 Python 앱에서 클라우드 내 빌드 경로가 강조 표시된 서비스를 사용하는 서비스의 스크린샷입니다.

Azure Container Registry 만들기

사용하려는 기존 Azure Container Registry가 있는 경우 다음 단계를 건너뛰고 다음 단계를 진행합니다. 그렇지 않으면 Azure CLI를 사용하여 새 Azure Container Registry를 만듭니다.

Azure CLI 명령은 Azure Cloud Shell 또는 AzureCLI가 설치된 로컬 개발 환경에서 실행할 수 있습니다.

메모

이 자습서 시리즈의 2부와 동일한 이름을 사용합니다.

  1. az acr create 명령을 사용하여 Azure Container Registry를 만듭니다.

    #!/bin/bash
    # Use the resource group that you created in part 2 of this tutorial series.
    RESOURCE_GROUP_NAME='msdocs-web-app-rg'
    # REGISTRY_NAME must be unique within Azure and contain 5-50 alphanumeric characters.
    REGISTRY_NAME='msdocscontainerregistryname'
    
    echo "Creating Azure Container Registry $REGISTRY_NAME..."
    az acr create -g $RESOURCE_GROUP_NAME -n $REGISTRY_NAME --sku Standard
    

    명령의 JSON 출력에서 값을 찾습니다 loginServer . 이 값은 정규화된 레지스트리 이름(모두 소문자)을 나타내며 레지스트리 이름을 포함합니다.

  2. 로컬 컴퓨터에서 Azure CLI를 사용하는 경우 az acr login 명령을 실행하여 컨테이너 레지스트리에 로그인합니다.

    az acr login -n $REGISTRY_NAME
    

    이 명령은 이름에 "azurecr.io"를 추가하여 정규화된 레지스트리 이름을 만듭니다. 성공하면 "로그인 성공"이라는 메시지가 표시됩니다.

    메모

    Azure Cloud Shell에서는 인증이 Cloud Shell 세션을 통해 자동으로 처리되므로 az acr login command 가 필요하지 않습니다. 그러나 인증 문제가 발생하는 경우에도 계속 사용할 수 있습니다.

Azure Container Registry에서 이미지 빌드

다양한 방법을 통해 Azure에서 직접 컨테이너 이미지를 생성할 수 있습니다.

  • Azure Cloud Shell을 사용하면 로컬 환경과 관계없이 완전히 클라우드에서 이미지를 생성할 수 있습니다.
  • 또는 로컬에서 Docker를 실행하지 않고도 VS Code 또는 Azure CLI를 사용하여 로컬 설정에서 Azure에서 만들 수 있습니다.

Azure CLI 명령은 Azure CLI가 설치된 로컬 개발 환경 또는 Azure Cloud Shell에서 실행할 수 있습니다.

  1. 콘솔에서 이 자습서 시리즈의 2부에서 복제된 리포지토리의 루트 폴더로 이동합니다.

  2. az acr build 명령을 사용하여 컨테이너 이미지를 빌드합니다.

    az acr build -r $REGISTRY_NAME -g $RESOURCE_GROUP_NAME -t msdocspythoncontainerwebapp:latest .
    # When using Azure Cloud Shell, run one of the following commands instead:
    # az acr build -r $REGISTRY_NAME -g $RESOURCE_GROUP_NAME -t msdocspythoncontainerwebapp:latest https://github.com/Azure-Samples/msdocs-python-django-container-web-app.git
    # az acr build -r $REGISTRY_NAME -g $RESOURCE_GROUP_NAME -t msdocspythoncontainerwebapp:latest https://github.com/Azure-Samples/msdocs-python-flask-container-web-app.git
    

    명령의 마지막 인수는 리포지토리에 대한 정규화된 경로입니다. Azure Cloud Shell에서 실행하는 경우 Django 샘플 앱 및 https://github.com/Azure-Samples/msdocs-python-django-container-web-app.git Flask 샘플 앱에 사용합니다https://github.com/Azure-Samples/msdocs-python-flask-container-web-app.git.

  3. az acr repository list 명령을 사용하여 컨테이너 이미지가 만들어졌는지 확인합니다.

    az acr repository list -n $REGISTRY_NAME
    

다음 단계