Angular CLI app not running when deploying to Linux App Service

戏子无情 提交于 2020-12-01 07:45:34

问题


I'm trying to deploy an Angular CLI app to Azure App Service on Linux OS, using Azure Dev Ops - but no success. I get Image 1. No error in the server or application logs.

This is what I done so far:

  1. Built the Angular CLI app using DevOps Build and placed the resulted "dist" folder to the "drop" folder. See below (Image 2) the tasks that compose my build. This is working fine and creating the expected files.

  1. Created a release in DevOps, deploying all the dist files in the wwwroot folder in the Azure App Service in Linux. Shown below are both, the wwwroot folder (left) and my local dist folder (right) after I run a ng build --prod.

I have the suspicion that I need to kickstart the angular by feeding some time of command when doing the deployment. I have tried running "ng serve --host 0.0.0.0" but that didn't work.


回答1:


Check the Azure App Service > Linux section on this page. Essentially, you have to serve the app. You can configure this with a ecoysystem.config.js PM2 file in the root directory, with this inside.

module.exports = {
    apps: [
        {
            script: "npx serve -s"
        }
    ]
};

I also added npx serve -s in the App Service Configuration > General Settings > Startup Command

See also: https://burkeholland.github.io/posts/static-site-azure




回答2:


I had to give the npx serve -s as the startup command

Then set the Runtime Stack with node framework 10.16 (NODE|10.16). See below

Then everything started working.




回答3:


If you still want to use App Service - Web App you can just the Windows OS instead of Linux.

Here are the parameters I Used:

Since the output of building angular is a static web app, IIS will serve the site right away.




回答4:


When using Linux App Service container, you may also select PHP stack containing Apache2 Server. Since, Angular files are static ones (JS, CSS, HTML), so you just need some web server to serve this content.

Example configuration:




回答5:


If you look at the default 'Deploy Node.js App to Azure App Service' release template, it uses the 'Deploy Azure App Service' task and adds the following commands to the task. this might help you out.




回答6:


There is a subtle and big difference between the Linux and Windows App service: IIS - which in Windows is actively looking to serve any app, whereas in Linux you have to spin up something on your own to serve it - Express for example.

After some research I discovered that I don't need a full App service dedicated to run a static app (such as Angular or React). It can be done just as efficiently and much cheaper with something like Storage. -> https://code.visualstudio.com/tutorials/static-website/getting-started



来源:https://stackoverflow.com/questions/55080947/angular-cli-app-not-running-when-deploying-to-linux-app-service

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!