首页 > 解决方案 > 无法使用 GitHub 操作部署到 Azure 容器 - 部署失败并出现错误:错误:无法获取应用运行时操作系统

问题描述

1. 总结问题

我正在尝试使用 GitHub 操作将代码从 GitHub 部署到 Azure App Service 容器。使用 GitHub Actions,我能够成功签出我的主分支,登录到 azure 容器注册表,使用 docker 构建容器,并将我的 docker 映像推送到容器。但是在使用 azure/webapps-deploy@v2 和应用程序授权的发布配置文件部署到 Azure Web 应用程序时出现以下错误。

Run azure/webapps-deploy@v2
  with:
    app-name: dtpdashboardContainers
    slot-name: production
    publish-profile: ***
    images: dtpdashboardcontainerregistry.azurecr.io/client:29b2d0a483f35ffd4490d75443b309f3a28c8ad9
    package: .
Error: Deployment Failed with Error: Error: Failed to get app runtime OS
{} 

2. 描述你尝试过的东西

值得注意的是,我可以通过 azure 门户手动部署。我可以去容器的 Azure 门户部署中心,选择构建并传递给 Azure 容器注册表的新镜像并进行部署。这一切都按预期工作,但令人沮丧的是,我无法通过 GitHub 推送操作来实现这一点。

3.显示一些代码

构建成功,部署失败并出现上述错误。我已经为此苦苦挣扎了一段时间,因此非常感谢您的帮助!谢谢。

 Docs for the Azure Web Apps Deploy action: https://github.com/Azure/webapps-deploy
# More GitHub Actions for Azure: https://github.com/Azure/actions

name: Build and deploy client container app to Azure 

on:
    push:
        branches:
            - master
    workflow_dispatch:

jobs:
  build:
    runs-on: 'ubuntu-18.04'

    steps:
    - uses: actions/checkout@v2

    - name: Login to Azure Container Registry
      uses: azure/docker-login@v1
      with:
        login-server: dtpdashboardcontainerregistry.azurecr.io
        username: ${{ secrets.AZUREAPPSERVICE_CONTAINERUSERNAME_1EBED267A6874BAE8C94362D3A133011 }}
        password: ${{ secrets.AZUREAPPSERVICE_CONTAINERPASSWORD_3E64C8001D134F0F87A64922FA0D562B }}

    - name: Build Container
      run: docker build -t dtpdashboardcontainerregistry.azurecr.io/client:${{ github.sha }} ./client

    - name: Push client image 
      run: docker push dtpdashboardcontainerregistry.azurecr.io/client:${{ github.sha }}

  deploy:
    runs-on: 'ubuntu-18.04'
    needs: build
    environment:
       name: 'production'
       url: ${{ steps.deploy-to-webapp.outputs.webapp-url }}

    steps:
    - name: Deploy to Azure Web App
      id: deploy-to-webapp
      uses: azure/webapps-deploy@v2
      with:
        app-name: 'dtpdashboardContainers'
        slot-name: 'production'
        publish-profile: ${{ secrets.AzureAppService_PublishProfile_49fd57adb2104ab59b9a586e4a6e8049 }}
        images: 'dtpdashboardcontainerregistry.azurecr.io/client:${{ github.sha }}'

标签: azureazure-web-app-serviceweb-deploymentgithub-actionscontinuous-deployment

解决方案


对我来说,这是通过从 app.scm.azurewebsites.net 中删除访问限制来解决的


推荐阅读