Dela via


Skapa en containerbaserad Python-webbapp i Azure

I den här delen av självstudieserien får du lära dig hur du skapar en containerbaserad Python-webbapp direkt i Azure Container Registry utan att installera Docker lokalt. Att skapa Docker-avbildningen i Azure är ofta snabbare och enklare än att skapa avbildningen lokalt och sedan skicka den till Azure Container Registry. Dessutom eliminerar molnbaserad avbildningsbyggnad behovet av att Docker körs i utvecklingsmiljön.

Med App Service kan du köra containerbaserade webbappar och distribuera dem via ci/CD-funktionerna (kontinuerlig integrering/kontinuerlig distribution) i Docker Hub, Azure Container Registry och Visual Studio Team Services. Den här artikeln är del 3 i en självstudieserie i fem delar om hur du containeriserar och distribuerar en Python-webbapp till Azure App Service. I den här delen av självstudien får du lära dig hur du skapar den containerbaserade Python-webbappen i Azure.

Med Azure App Service kan du distribuera och köra containerbaserade webbappar med HJÄLP av CI/CD-pipelines från plattformar som Docker Hub, Azure Container Registry och Azure DevOps. Den här artikeln är del 3 i en självstudieserie i fem delar.

I del 2 i den här självstudieserien skapade och körde du containeravbildningen lokalt. I kontrast, i den här delen av självstudien bygger (kontaineriserar) du samma Python-app direkt in i en Docker-avbildning i Azure Container Registry. Att skapa avbildningen i Azure är vanligtvis snabbare och enklare än att skapa lokalt och sedan skicka avbildningen till ett register. Att bygga i molnet kräver inte heller att Docker körs i utvecklingsmiljön.

När Docker-avbildningen finns i Azure Container Registry kan den distribueras till Azure App Service.

Det här tjänstdiagrammet visar de komponenter som beskrivs i den här artikeln.

En skärmbild av de tjänster som använder i självstudien – Containeriserad Python-app i Azure med sökvägen build-in-cloud markerad.

Skapa ett Azure Container Registry

Om du har ett befintligt Azure Container Registry som du vill använda hoppar du över nästa steg och fortsätter till nästa steg. Annars skapar du ett nytt Azure Container Registry med hjälp av Azure CLI.

Azure CLI-kommandon kan köras i Azure Cloud Shell eller i din lokala utvecklingsmiljö med Azure CLI installerat.

Anteckning

Använd samma namn som i del 2 i den här självstudieserien.

  1. Skapa ett Azure-containerregister med kommandot az acr create .

    #!/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
    

    Leta upp loginServer värdet i JSON-utdata för kommandot. Det här värdet representerar det fullständigt kvalificerade registernamnet (alla gemener) och innehåller registernamnet.

  2. Om du använder Azure CLI på den lokala datorn kör du kommandot az acr login för att logga in i containerregistret.

    az acr login -n $REGISTRY_NAME
    

    Kommandot lägger till "azurecr.io" i namnet för att skapa det fullständigt kvalificerade registernamnet. Om det lyckas visas meddelandet "Inloggningen lyckades".

    Anteckning

    I Azure Cloud Shell är az acr login command inte nödvändigt, eftersom autentisering hanteras automatiskt via din Cloud Shell-session. Men om du stöter på autentiseringsproblem kan du fortfarande använda det.

Skapa en avbildning i Azure Container Registry

Du kan generera containeravbildningen direkt i Azure via olika metoder:

  • Med Azure Cloud Shell kan du skapa avbildningen helt i molnet, oberoende av din lokala miljö.
  • Du kan också använda VS Code eller Azure CLI för att skapa den i Azure från din lokala konfiguration, utan att behöva Köra Docker lokalt.

Azure CLI-kommandon kan köras i din lokala utvecklingsmiljö med Azure CLI installerat eller i Azure Cloud Shell.

  1. I -konsolen navigerar du till rotmappen för den klonade lagringsplatsen från del 2 i den här självstudieserien.

  2. Skapa containeravbildningen med kommandot 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
    

    Det sista argumentet i kommandot är den fullständigt kvalificerade sökvägen till lagringsplatsen. När du kör i Azure Cloud Shell använder du https://github.com/Azure-Samples/msdocs-python-django-container-web-app.git för Django-exempelappen och https://github.com/Azure-Samples/msdocs-python-flask-container-web-app.git för Flask-exempelappen.

  3. Bekräfta att containeravbildningen skapades med kommandot az acr repository list.

    az acr repository list -n $REGISTRY_NAME
    

Nästa steg