问题标签 [azure-web-app-for-containers]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
467 浏览

docker - 使用 Visual Studio 2019 右键单击​​将自定义 docker 图像发布到现有 ACR

当我尝试通过 Visual Studio 2019 将 DotNet 3.1 Web 应用程序发布到 ACR 时出现以下错误。我按照此链接的说明进行发布,但我没有创建新的,而是从列表中选择了现有的 ACR。我还在 Visual Studio 中查看了使用错误中显示的任何特殊开关设置 ACR 凭据,但找不到它。

我的 Docker 桌面版本是 - 2.5.0.1,VS 版本是 - 16.7.6

出现以下错误:

诊断日志已写入以下位置:

C:\Users\Admin\AppData\Local\Temp\tmp2719.tmp

下面是失败后由 Visual Studio 提供的完整堆栈跟踪文件:

26-11-2020 08:40:30 PM Microsoft.WebTools.Azure.Publish.Docker.DockerCommandException:运行 docker.exe 登录命令失败。

警告!通过 CLI 使用 --password 是不安全的。使用 --password-stdin。在 Microsoft.WebTools.Azure.Publish.Docker.DockerOperations.ThrowDockerCommandError(String dockerCommand) 在 Microsoft.WebTools.Azure.Publish.Docker.DockerOperations.d__5.MoveNext() --- 从先前抛出异常的位置结束堆栈跟踪--- 在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 在 Microsoft.WebTools.Azure.Publish.Docker.DockerPublish.d__2.MoveNext() - -- 在 System.Runtime.CompilerServices.TaskAwaiter 的 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 处从先前引发异常的位置结束堆栈跟踪。

0 投票
2 回答
422 浏览

azure-web-app-service - Azure Webapps 的默认图像是公开的吗?

我想在 Azure Webapps 中运行一个 PHP 应用程序。为此,我想使用自己的 Container,因为当前默认值存在一些问题。

代码或 Dockerfile 是否在某个地方公开,因此可以将其用作基础?

编辑:我也想提交一个潜在的错误,但我也找不到问题跟踪器。

0 投票
1 回答
395 浏览

azure-devops - 持续监控 Azure DevOps 版本

我正在尝试创建一个设置,在其中部署“容器的 Webapp”,但我想通过 Azure Monitor 进行一些检查。我的想法是部署 web 应用程序,然后设置一个检查 azure 监视器警报集是否可用的门。当可用性检查失败时,它应该回滚。

文档指出“当发布管道检测到 Application Insights 警报时,管道可以控制或回滚部署,直到警报得到解决”,但我不知道如何在 azure devops 中配置它。

我有一个 AppService 计划和一个正在运行的 Web 应用程序。我还创建了一个 Application Insights 实例,并通过“Azure App Service manage”任务启用了持续监控。我创建的警报是:

作为部署后条件,我启用了 Gates,并将其配置为检查可用性警报,该警报有效。当我故意调整某些东西以使应用程序失败时,Gate 工作并最终使 Stage 失败。我还启用了自动重新部署以部署最后一次成功的部署,但这并没有做任何事情,因为实际的部署任务已成功完成......只是门失败和阶段失败。

0 投票
2 回答
1009 浏览

azure - 将 Azure Web App 用于具有托管标识的容器

使用自定义映像(来自 Centos 7 基础映像)为容器部署了 Azure 应用服务。根据以下文档,Azure 应设置一个环境变量,用于创建 REST API 请求以获取访问令牌:

  • IDENTITY_ENDPOINT - 本地令牌服务的 URL。

但是,在容器内部检查时,未设置此变量:

我也尝试过调用 az cli,但也失败了:

我已经成功地将托管标识用于虚拟机和应用服务(代码部署而不是容器),它是否支持容器应用服务和自定义容器?

0 投票
1 回答
1389 浏览

docker - 如何设置 Azure Pipelines 以使用多个 docker 容器发布到 Azure App Service?

我正处于开发项目的早期阶段——并试图确定 CI/CD 管道。在尝试将多个 docker 容器部署到单个 Azure 应用服务中时,我遇到了一些困惑。这是我要实现的目标的大纲,其中包含尽可能多的细节。任何关于我哪里出错的指导将不胜感激。我已经在我认为我已经正确配置的项目旁边打上了复选标记 。

  1. 将代码合并到 Github 存储库的主分支✔</li>
  2. 让 Azure DevOps Pipeline 自动触发✔
    • 通过运行 docker-compose.yml 文件(此文件由 Visual Studio 自动生成)构建我的所有服务,并使用当前构建 ID 标记它们
    • 将所有图像推送到我的 azure 容器注册表中
    • 将我的 docker-compose.yml 复制到工件暂存文件夹
    • 发布工件暂存文件夹
    • YML 实现:
    • docker-compose.yml(通用名称)
  3. 拥有一个包含多个阶段的 Azure DevOps 发布管道,用于发布到 QA/Prod 环境❌
    • 添加一个要在 Release Creation 中设置的变量,我正在寻找针对的 BuildId(来自上面列出的管道)
    • 从上面添加工件
    • 有 2 个阶段,QA 和 Prod
    • 每个阶段只运行一个“容器部署上的 Azure Web 应用”任务
      • 我将“图像名称”设置为等于 ACR 中的 3 项服务
      • 我将“配置文件”设置为工件中的 docker-compose.yml
      • 此步骤的 YML

当一切都说完了,这个发布管道运行了——我的应用服务最终被配置为从 Docker Hub 获取它的图像——并且容器图像无法拉取,因为没有填充 docker hub 凭据并且图像名称在我的 docker-compose.yml 文件无效(例如,“${DOCKER_REGISTRY-}api1”)

我以前从未使用过 docker,所以我很难正确地解决这个问题。我已尝试包含尽可能多的信息,如果您还需要其他信息,请告诉我——再次感谢任何帮助。

0 投票
2 回答
1721 浏览

azure-devops - 强制停止 Azure 应用服务部署插槽交换

我们使用 Azure DevOps 部署到暂存槽,然后与生产交换。当交换出现问题时,它将继续尝试近 30 分钟。

因此,我想对交换任务设置一个超时,但如果我这样做,它将停止 DevOps 中的任务并让该过程在 Azure 中进行。

我想要一种通过 CLI、API、PowerShell 或 DevOps 任务强制停止进程的方法。

Azure CLI 似乎没有任何 Kudu API 可以删除部署但不打算阻止它们(https://github.com/projectkudu/kudu/wiki/REST-API#deployment

我已经读到您可以停止进程,但使用 Linux 容器应用服务,我看不到该选项。Azure 网站:如何取消部署?

有办法吗?

0 投票
1 回答
258 浏览

azure-web-app-service - 使用容器的 Azure 应用服务:容器何时更新?

我正在使用 Docker 容器运行 Azure 应用服务。我真的没有找到文档,在这种情况下会更新容器。

此外,我想使用应用服务插槽,但我不确定这是否会改变任何内容。

我假设,如果可以控制更新(尤其是交换插槽),则可以将 siteconfig/linux_fx_version 中的标签设置为最新。如果无法控制(例如容器更新可以随机发生),最好的选择是使用显式版本标签并在每次部署时更新它们。

我不确定我的假设是否正确。

我根据 terraform 代码的简化示例:

0 投票
1 回答
185 浏览

opengl - 是否可以在 Azure App Service Linux 中使用 OpenGL?

我们正在构建一个运行 .NET 5 的 ASP.NET API,它使用 SkiaSharp 动态创建和返回图像。我们注意到使用 GPU 可以显着提高性能。我们知道,为了使用 GPU,我们需要实例化 OpenGL 上下文,但随之而来的是一些要求。我们的测试在我们的环境中运行良好:Mac 和 Windows,但在使用 P1v2 VM 部署到 Linux Azure 应用服务时无法运行。

错误信息Unable to create GL context: Unable to load shared library 'libX11'。做了一些研究,我意识到容器没有OpenGL安装,并且由于缺乏权限而尝试安装它apt-get是不可能的。

我走的是在我的机器上本地运行KuduLite 容器并安装libgl1-mesa-glxmesa-utils的路线,但运行glxinfo导致错误Error: unable to open display。我发现这篇文解释了在 Docker 中运行硬件加速 OpenGL 支持的要求。该博客文章来自 2014 年,所以我不确定它是否仍然有效,但如果有很多要求在我尝试在我的机器上本地解决之前,我想知道它们是否可以在 Azure App 中使用服务容器。

那么,是否有可能在 Azure App Service docker 中提供硬件加速的 OpenGL 支持?

0 投票
1 回答
629 浏览

kubernetes - Kubernetes (AKS) 1.19 版本中部署的 Web App 返回 404 Page not found

我们有一个部署在 Azure Kubernetes 中的反应节点 Web 应用程序。该应用程序当前部署在 AKS 中,Kubernetes 版本为 1.15,但我们希望将 Kubernetes 升级到 1.19。在将应用程序部署到 AKS 1.19 时,我们对多个 yaml 文件进行了必要的更改,以便应用程序在部署到 AKS 1.19 时兼容。在进行相关更改并将应用程序部署到 AKS 后,所有的 PODS - 后端、前端、traefik 都启动并运行,我们使用 csi 驱动程序将 Azure KEY VAULT 挂载到后端 POD,Traefik 是入口控制器。输出 - 将应用程序部署到 AKS 1.19 后 kubectl 获取 pod

但是,当我尝试使用 values.yaml 中提到的 URL 作为主机名从浏览器访问应用程序时,它返回 - 404 Page Not Found 错误,我们期望登录页面被加载。

入口 Yaml - 前端:

Ingress Yaml - 后端

我们在部署中使用 Traefik 作为入口控制器,当我看到 Traefik pod 的日志时,我只看到了这个 - 看起来日志级别设置为 info :

关于我们缺少什么以及为什么我们最终找不到 404 页面的任何指针都将非常有帮助。

我们是否缺少任何配置。

0 投票
1 回答
51 浏览

azure-web-app-service - 写入持久存储的命令挂在适用于 Linux 容器的 Azure 应用服务中

我们有一个正在尝试在 Azure 应用服务中运行的自定义容器映像。该映像有一个 shell 脚本作为入口点,它执行许多命令,其中一些与文件 IO 相关。我们需要通过更改配置来开启 Persisten Storage WEBSITES_ENABLE_APP_SERVICE_STORAGE = true

容器无法启动,通过查看日志,我们看到进程在以下语句期间挂起:

该语句基本上是压缩一个文件夹并将其提取到/home/site/wwwroot目录中,该目录是在App Service中持久化的。

我们可以看到start正在记录在日志中,但我们看不到end,这使我们相信进程挂在tar语句上,但我们看到一些文件和文件夹被复制。

如果我们设置WEBSITES_ENABLE_APP_SERVICE_STORAGE = false一切都按预期工作......当然,直到restart容器的 a ,我们放弃所有更改。因此我们需要持久存储。此外,这在我指向外部卷的本地机器上运行良好。

是什么赋予了?