Angular CLI应用在部署到Linux App Service时未运行

disbfnqx  于 2023-06-21  发布在  Linux
关注(0)|答案(7)|浏览(116)

我正在尝试使用Azure Dev Ops将Angular CLI应用部署到Linux操作系统上的Azure应用服务-但没有成功。我得到了图1。服务器或应用程序日志中没有错误。

这是我到目前为止所做的:
1.使用DevOps Build构建Angular CLI应用程序,并将结果“dist”文件夹放置到“drop”文件夹中。请参见下面(图2)组成构建的任务。这是工作正常,并创建预期的文件。

1.在DevOps中创建了一个版本,在Linux中部署Azure App Service中wwwroot文件夹中的所有dist文件。下面显示的是运行ng build --prod后的wwwroot文件夹(左)和本地dist文件夹(右)。

我怀疑我需要通过在进行部署时提供一些时间的命令来启动Angular 。我试过运行“ng serve --host 0.0.0.0”,但没有成功。

omjgkv6w

omjgkv6w1#

查看此页面上的Azure应用服务> Linux部分。从本质上讲,你必须服务于应用程序。
在App Service Configuration > General Settings > Startup Command中添加npx serve -s

除了Azure Web App设置(如上所述)之外,您还可以在部署后执行启动。如果你正在使用Azure Pipelines,你可以使用以下内容启动它:

- task: AzureRmWebAppDeployment@4
  displayName: 'Deploy website'
  inputs:
    azureSubscription: '[your Azure subscription]'
    appType: webAppLinux
    WebAppName: '[your Azure web app]'
    packageForLinux: '[artifacts]/package.zip'
    StartupCommand: 'npx serve -s'
  • 2023年更新 *:您不再需要在根目录中使用ecoysystem.config.js PM2文件来配置它,其中包含最初回答的内容。
module.exports = {
    apps: [
        {
            script: "npx serve -s"
        }
    ]
};

旧参考:https://burkeholland.github.io/posts/static-site-azure

eyh26e7m

eyh26e7m2#

我不得不给予npx serve -s作为启动命令

然后用节点框架10.16 (NODE|10.16)设置Runtime Stack。见下文

然后一切都开始工作。

umuewwlo

umuewwlo3#

如果您还想使用App Service - Web App,您可以只使用Windows操作系统,而不是Linux
以下是我使用的参数:

由于构建angular的输出是一个静态Web应用程序,IIS将立即为该站点提供服务。

jtoj6r0c

jtoj6r0c4#

使用Linux App Service容器时,也可以选择包含Apache2 Server的PHP堆栈。因为Angular文件是静态的(JS,CSS,HTML),所以你只需要一些Web服务器来提供这些内容。
示例配置:

ezykj2lf

ezykj2lf5#

如果查看默认的“Deploy Node.js App to Azure App Service”发布模板,它使用“Deploy Azure App Service”任务并将以下命令添加到该任务。这个也许能帮到你

vwoqyblh

vwoqyblh6#

Linux和Windows应用程序服务之间有一个微妙而巨大的差异:IIS --在Windows中,它积极地为任何应用程序提供服务,而在Linux中,你必须自己启动一些东西来为它服务--例如Express。
经过一些研究,我发现我不需要一个完整的应用服务来运行静态应用(如Angular或React)。它可以像存储一样高效且便宜得多。-> https://code.visualstudio.com/tutorials/static-website/getting-started

qfe3c7zg

qfe3c7zg7#

我在Linux和Node的Azure应用服务上遇到了同样的问题,使用下面的启动命令解决了它
pm2 serve /home/site/wwwroot --no-daemon --spa

相关问题