我正在尝试使用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”,但没有成功。
7条答案
按热度按时间omjgkv6w1#
查看此页面上的Azure应用服务> Linux部分。从本质上讲,你必须服务于应用程序。
在App Service Configuration > General Settings > Startup Command中添加
npx serve -s
除了Azure Web App设置(如上所述)之外,您还可以在部署后执行启动。如果你正在使用Azure Pipelines,你可以使用以下内容启动它:
ecoysystem.config.js
PM2文件来配置它,其中包含最初回答的内容。旧参考:https://burkeholland.github.io/posts/static-site-azure
eyh26e7m2#
我不得不给予
npx serve -s
作为启动命令然后用节点框架
10.16 (NODE|10.16)
设置Runtime Stack
。见下文然后一切都开始工作。
umuewwlo3#
如果您还想使用App Service - Web App,您可以只使用Windows操作系统,而不是Linux。
以下是我使用的参数:
由于构建angular的输出是一个静态Web应用程序,IIS将立即为该站点提供服务。
jtoj6r0c4#
使用Linux App Service容器时,也可以选择包含Apache2 Server的PHP堆栈。因为Angular文件是静态的(JS,CSS,HTML),所以你只需要一些Web服务器来提供这些内容。
示例配置:
ezykj2lf5#
如果查看默认的“Deploy Node.js App to Azure App Service”发布模板,它使用“Deploy Azure App Service”任务并将以下命令添加到该任务。这个也许能帮到你
vwoqyblh6#
Linux和Windows应用程序服务之间有一个微妙而巨大的差异:IIS --在Windows中,它积极地为任何应用程序提供服务,而在Linux中,你必须自己启动一些东西来为它服务--例如Express。
经过一些研究,我发现我不需要一个完整的应用服务来运行静态应用(如Angular或React)。它可以像存储一样高效且便宜得多。-> https://code.visualstudio.com/tutorials/static-website/getting-started
qfe3c7zg7#
我在Linux和Node的Azure应用服务上遇到了同样的问题,使用下面的启动命令解决了它
pm2 serve /home/site/wwwroot --no-daemon --spa