无法使用 GitHub 操作部署到 Azure 容器 - 部署失败,错误:错误:无法获取应用运行时操作系统

时间:2021-06-14 17:33:00

标签: azure azure-web-app-service web-deployment github-actions continuous-deployment

1.总结问题

我正在尝试使用 GitHub 操作从 GitHub 将代码部署到 Azure 应用服务容器。使用 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 }}'

1 个答案:

答案 0 :(得分:0)

搜索类似案例,没有找到更有效的内容来解决这个问题。我只能建议你试试。

尝试步骤:

  1. 修改ubuntu版本,使用runs-on:'ubuntu-latest'

  2. 重新创建一个 web 应用程序(在不同的区域下)进行测试,并执行部署

我搜索的链接,供参考:

  1. Error Failed to get app runtime OS #95

  2. Kudu services unavailable #1