Nasazení vlastního kontejneru pro App Service pomocí akcí GitHubu
Akce GitHubu nabízí flexibilitu při vytváření automatizovaného pracovního postupu vývoje softwaru. Pomocí akce nasazení webu Azuremůžete automatizovat pracovní postup a nasadit vlastní kontejnery, které se App Service pomocí akcí GitHubu.
Pracovní postup je definovaný souborem YAML (. yml) v /.github/workflows/ cestě v úložišti. Tato definice obsahuje různé kroky a parametry, které jsou v pracovním postupu.
Pro pracovní postup kontejneru Azure App Service má soubor tři části:
| Sekce | Úlohy |
|---|---|
| Authentication | 1. načtěte instanční objekt nebo publikační profil. 2. Vytvořte tajný klíč GitHubu. |
| Sestavení | 1. Vytvořte prostředí. 2. Sestavte image kontejneru. |
| Nasazení | 1. Nasaďte image kontejneru. |
Požadavky
- Účet Azure s aktivním předplatným. Vytvořit účet zdarma
- Účet GitHub. Pokud ho ještě nemáte, zaregistrujte se zdarma. K nasazení do Azure App Service musíte mít v úložišti GitHub kód.
- Pracovní kontejner registru a aplikace Azure App Service pro kontejnery. Tento příklad používá Azure Container Registry. Nezapomeňte dokončit úplné nasazení, aby se Azure App Service pro kontejnery. Na rozdíl od běžných webových aplikací nemá Web Apps for Containers výchozí cílovou stránku. Publikujte kontejner, aby měl pracovní příklad.
Generovat přihlašovací údaje nasazení
Doporučený způsob ověřování pomocí Azure App Services pro akce GitHubu je profil publikování. Můžete se také ověřit pomocí instančního objektu, ale proces vyžaduje více kroků.
Uložte přihlašovací údaje k publikačnímu profilu nebo instančnímu objektu jako tajný kód GitHubu pro ověření v Azure. V rámci pracovního postupu budete mít přístup ke tajnému kódu.
Profil publikování je přihlašovací údaje na úrovni aplikace. Nastavte svůj publikační profil jako tajný klíč GitHubu.
V Azure Portal přejdete do služby App Service.
Na stránce Přehled vyberte získat profil publikování.
Poznámka
Od října 2020 budou webové aplikace pro Linux potřebovat nastavení aplikace
WEBSITE_WEBDEPLOY_USE_SCMnastavené na hodnotutruepřed stažením souboru. Tento požadavek se v budoucnu odebere. Informace o tom, jak nakonfigurovat běžné nastavení webové aplikace, najdete v tématu Konfigurace aplikace App Service v Azure Portal.Stažený soubor uložte. Pomocí obsahu souboru vytvoříte tajný klíč GitHubu.
Konfigurace tajného kódu GitHubu pro ověřování
V GitHubupřejděte do úložiště, vyberte Nastavení > tajných kódů > přidejte nový tajný kód.
Pokud chcete použít přihlašovací údaje na úrovni aplikace, vložte obsah staženého souboru publikačního profilu do pole hodnota tajného klíče. Pojmenujte tajný klíč AZURE_WEBAPP_PUBLISH_PROFILE .
Když nakonfigurujete pracovní postup GitHubu, použijte AZURE_WEBAPP_PUBLISH_PROFILE v akci nasazení webové aplikace Azure. Například:
- uses: azure/webapps-deploy@v2
with:
publish-profile: ${{ secrets.AZURE_WEBAPP_PUBLISH_PROFILE }}
Konfigurace tajných kódů GitHubu pro váš registr
Definování tajných kódů pro použití s akcí přihlášení k Docker Příklad v tomto dokumentu používá Azure Container Registry pro Registry kontejneru.
V Azure Portal nebo Docker klikněte na kontejner a zkopírujte uživatelské jméno a heslo. Azure Container Registry uživatelské jméno a heslo najdete v Azure Portal v části Nastavení > přístupových klíčů pro váš registr.
Zadejte nový tajný klíč pro uživatelské jméno registru s názvem
REGISTRY_USERNAME.Zadejte nový tajný klíč pro heslo registru s názvem
REGISTRY_PASSWORD.
Sestavení image kontejneru
Následující příklad ukazuje část pracovního postupu, která vytváří Node.JS image Docker. K přihlášení do soukromého registru kontejneru použijte přihlašovací jméno Docker . V tomto příkladu se používá Azure Container Registry, ale stejná akce funguje i pro jiné Registry.
name: Linux Container Node Workflow
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: azure/docker-login@v1
with:
login-server: mycontainer.azurecr.io
username: ${{ secrets.REGISTRY_USERNAME }}
password: ${{ secrets.REGISTRY_PASSWORD }}
- run: |
docker build . -t mycontainer.azurecr.io/myapp:${{ github.sha }}
docker push mycontainer.azurecr.io/myapp:${{ github.sha }}
Můžete také použít přihlášení Docker pro přihlášení k více registrům kontejnerů současně. Tento příklad obsahuje dva nové tajné kódy GitHubu pro ověřování pomocí docker.io. V příkladu se předpokládá, že existuje souboru Dockerfile na kořenové úrovni registru.
name: Linux Container Node Workflow
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: azure/docker-login@v1
with:
login-server: mycontainer.azurecr.io
username: ${{ secrets.REGISTRY_USERNAME }}
password: ${{ secrets.REGISTRY_PASSWORD }}
- uses: azure/docker-login@v1
with:
login-server: index.docker.io
username: ${{ secrets.DOCKERIO_USERNAME }}
password: ${{ secrets.DOCKERIO_PASSWORD }}
- run: |
docker build . -t mycontainer.azurecr.io/myapp:${{ github.sha }}
docker push mycontainer.azurecr.io/myapp:${{ github.sha }}
Nasazení do kontejneru App Service
K nasazení image do vlastního kontejneru v App Service použijte azure/webapps-deploy@v2 akci. Tato akce má sedm parametrů:
| Parametr | Vysvětlení |
|---|---|
| název aplikace | Požadovanou Název aplikace App Service |
| publikování – profil | Volitelné Platí pro Web Apps (Windows a Linux) a kontejnery webové aplikace (Linux). Scénář vícenásobného kontejneru není podporován. Publikovat * obsah souboru profilu (. publishsettings) s nasazení webu tajnými klíči |
| název slotu | Volitelné Zadejte jinou existující patici, než je produkční slot. |
| balíček | Volitelné Platí jenom pro webovou aplikaci: cesta k balíčku nebo složce. *. zip, * . War, * . jar nebo složka, která se má nasadit |
| fotografií | Požadovanou Platí jenom pro kontejnery webové aplikace: zadejte plně kvalifikované názvy imagí kontejneru. Například ' myregistry.azurecr.io/nginx:latest ' nebo ' Python: 3.7.2-Alpine/'. Pro aplikaci s více kontejnery je možné zadat více názvů imagí kontejneru (oddělené víceřádkově). |
| konfigurační soubor | Volitelné Platí jenom pro kontejnery webové aplikace: cestu k souboru Docker-Compose. Musí být úplná cesta nebo relativní vzhledem k výchozímu pracovnímu adresáři. Vyžaduje se pro aplikace s více kontejnery. |
| spuštění – příkaz | Volitelné Zadejte spouštěcí příkaz. Pro ex. spuštění dotnet nebo dotnet filename.dll |
name: Linux Container Node Workflow
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: azure/docker-login@v1
with:
login-server: mycontainer.azurecr.io
username: ${{ secrets.REGISTRY_USERNAME }}
password: ${{ secrets.REGISTRY_PASSWORD }}
- run: |
docker build . -t mycontainer.azurecr.io/myapp:${{ github.sha }}
docker push mycontainer.azurecr.io/myapp:${{ github.sha }}
- uses: azure/webapps-deploy@v2
with:
app-name: 'myapp'
publish-profile: ${{ secrets.AZURE_WEBAPP_PUBLISH_PROFILE }}
images: 'mycontainer.azurecr.io/myapp:${{ github.sha }}'
Další kroky
Můžete najít naši sadu akcí seskupených do různých úložišť na GitHubu. Každá z nich obsahuje dokumentaci a příklady, které vám pomůžou používat GitHub pro CI/CD a nasazovat aplikace do Azure.