【Azure App Service for Linux】Linux Web App如何安装系统未安装的包

问题描述

Linux Web App中如何安装系统默认未安装的包,如何来执行如 apt install XXX命令呢?现在遇见的问题时,通过Azure App Service门户中的SSH登录后,执行命令Web端一侧长久没有响应。

 

根本原因

使用SSH连接到Linux web app的实例,可以参考博文(【应用服务 App Service】解决无法从Azure门户SSH登录问题)中描述的内容:使用 az webapp create-remote-connection 命令打开到应用的远程连接。

当本地网络情况好的情况下,直接在Web SSH上执行apt 等命令也是可以成功的。如下:

但是由于App Service的PaaS特性,实例会随时发生变化,所以如果通过这样的方式安装应用所需要的一些package,并不会持久化,也不会同步到其他实例上。当实例变动时或站点重启,均会丢失通过此方式安装的包(Package),所以建议把应用程序打包为镜像,使用容器化的方式部署到Azure App Service for Container。

 

解决方案

使用 az webapp config container set 命令指定要为 Web 应用部署的容器注册表和映像:

az webapp config container set --name <app-name> --resource-group AppSvc-DockerTutorial-rg --docker-custom-image-name <registry-name>.azurecr.io/appsvc-tutorial-custom-image:latest --docker-registry-server-url https://<registry-name>.azurecr.io
  • 将 <app_name> 替换为 Web 应用的名称,并在两个位置将 <registry-name> 替换为注册表的名称。

 

部署镜像的命令查看Azure官方文档:https://docs.microsoft.com/zh-cn/azure/app-service/tutorial-custom-container?pivots=container-linux#deploy-the-image-and-test-the-app

 

posted @ 2021-01-13 20:04  路边两盏灯  阅读(209)  评论(0编辑  收藏  举报