이 출시되었습니다! 11월의 새로운 기능 및 수정 사항을 읽어보세요.

Django 이미지 레지스트리에 푸시

이 튜토리얼에서는 로컬에서 빌드한 Python Django 앱의 컨테이너 이미지를 Azure Container Registry(ACR) 또는 Docker Hub에 배포합니다.

컨테이너 레지스트리 만들기

이미지를 푸시할 컨테이너 레지스트리를 만듭니다. 레지스트리에 인증하고 작업하는 방법에 대한 자세한 내용은 컨테이너 레지스트리 사용을 참조하세요.

생성한 레지스트리 끝점이 VS Code의 컨테이너 탐색기에서 레지스트리 아래에 표시되는지 확인하세요.

Container Explorer in VS Code showing registries

Django 앱 설정

  1. Django 프로젝트의 settings.py 파일에서 ALLOWED_HOSTS 목록을 수정하여 앱을 배포하려는 루트 URL을 포함합니다. 예를 들어, 다음 코드는 "vsdocs-django-sample-container"라는 Azure App Service(azurewebsites.net)에 배포된다고 가정합니다.

    ALLOWED_HOSTS = [
        # Example host name only; customize to your specific host
        "vsdocs-django-sample-container.azurewebsites.net"
    ]
    

    이 항목이 없으면 배포 후 "DisallowedHost" 메시지가 표시되며, 웹사이트 도메인을 ALLOWED_HOSTS에 추가해야 한다는 지침이 나옵니다. 이렇게 하려면 이미지를 다시 빌드하고 푸시한 다음 다시 배포해야 합니다.

  2. 명령 팔레트(⇧⌘P (Windows, Linux Ctrl+Shift+P))에서 컨테이너 이미지: 이미지 빌드...를 선택하여 새 설정으로 이미지를 다시 빌드합니다.

    : 여러 호스팅 서비스에서 프로덕션 환경의 이미지를 테스트하고 싶다면 ALLOWED_HOSTS에 "*"을 입력하면 됩니다.

이미지를 레지스트리에 푸시

ALLOWED_HOSTS가 선언되면 다음 단계는 Django 이미지를 컨테이너 레지스트리에 푸시하는 것입니다.

  1. 명령 팔레트(⇧⌘P (Windows, Linux Ctrl+Shift+P))를 열고 컨테이너 이미지: 푸시...를 선택합니다.

  2. 방금 빌드한 이미지를 푸시할 레지스트리로 선택합니다.

  3. 푸시할 레지스트리를 선택합니다. 이렇게 하면 이미지가 올바르게 태그되는 데 도움이 됩니다.

    Select a registry

  4. 레지스트리와 전체 태그를 선택하면 이미지가 푸시됩니다. 업로드 진행률은 터미널 창에 표시됩니다.

  5. 완료되면 컨테이너 탐색기에서 레지스트리 > Azure (또는 DockerHub) 노드를 확장한 다음 레지스트리와 이미지 이름을 확장하여 정확한 이미지를 확인합니다. (컨테이너 탐색기를 새로 고쳐야 할 수도 있습니다.)

    The built app image in the Azure Container Registry

: 이미지를 처음 푸시할 때 VS Code가 이미지 구성 요소를 이루는 각 레이어를 업로드하는 것을 볼 수 있습니다. 하지만 후속 푸시 작업에서는 변경된 첫 번째 레이어부터만 업데이트됩니다. 앱 코드는 일반적으로 가장 자주 변경되는 부분이므로 Dockerfile의 마지막 줄에 앱 코드가 복사되는 경우가 많습니다. 이 내부 루프를 작동하는 방식으로 보려면 코드에 작은 변경을 가하고 이미지를 다시 빌드한 다음 레지스트리에 다시 푸시하세요.

이미지를 레지스트리에 푸시했으므로 이제 컨테이너 지원 클라우드 서비스에 배포할 준비가 되었습니다. Azure App Service에 배포하는 방법에 대한 자세한 내용은 컨테이너 배포를 참조하세요.

© . This site is unofficial and not affiliated with Microsoft.