如何使用 Linux 在 Azure 应用服务上安装依赖二进制文件?



我有一个在Azure App Service(Linux(上运行的弹簧启动应用程序。我的应用程序依赖于二进制文件,需要它存在于系统上。如何在应用服务上安装它?

我尝试了以下两个选项:

  1. 通过Kudu做了ssh并安装了软件包($ apk添加软件包(。但是这些更改不会持续到/home 之后。依赖项安装在其他文件夹中,重新部署应用服务时,所有这些依赖项都已消失
  2. 使用部署后挂钩运行命令"$ apk add package",以便在部署完成后安装。该脚本的运行方式可以从自定义日志语句中看到,但我仍然没有看到已安装的软件包。即使使用 apt-get 它也会说"无法锁定管理目录">

使用静态编译的二进制文件对我来说不是一个选择,因为它有它自己的问题。 谢谢

对于 App Service Linux 上的 Tomcat、Java SE 和 WildFly 应用,可以在/home/startup.sh 创建一个文件,并使用它来以所需的任何方式初始化容器(例如:可以使用此脚本安装所需的包(。

应用服务 Linux 在启动时检查是否存在/home/startup.sh。如果存在,则执行。这为 Web 应用开发人员提供了一个扩展点,可用于在启动期间执行必要的自定义,例如在容器启动期间安装必要的包。

我认为这是Azure上的Linux的常见问题。 我建议退后一步,考虑以下选项之一。

  1. 在具有所有依赖项的容器中运行应用程序 你正在寻找。
  2. 改为在 Linux VM IaaS 上运行应用程序 的 Azure App Service (Linux(,PaaS.
  3. 在 Windows OS PaaS 上运行应用程序,并为依赖项添加扩展。(很可能您在使用Windows操作系统时不会遇到此问题(

虽然我知道你们可能不能接受其中任何一个,但我还没有找到解决这些特定情况的解决办法。

最新更新