Azure应用服务部署REACT JS应用时出现错误。

23

从编辑器部署到Azure应用服务时出现错误。

4:48:55 pm ppdedsrftwu2-appservice1: Starting deployment...
4:48:56 pm ppdedsrftwu2-appservice1: Creating zip package...
4:49:00 pm ppdedsrftwu2-appservice1: Zip package size: 1.09 MB
4:49:04 pm ppdedsrftwu2-appservice1: Fetching changes.
4:49:06 pm ppdedsrftwu2-appservice1: Updating submodules.
4:49:06 pm ppdedsrftwu2-appservice1: Preparing deployment for commit id '2a73dbd291'.
4:49:06 pm ppdedsrftwu2-appservice1: Repository path is /tmp/zipdeploy/extracted
4:49:06 pm ppdedsrftwu2-appservice1: Running oryx build...
4:49:06 pm ppdedsrftwu2-appservice1: Command: oryx build /tmp/zipdeploy/extracted -o /home/site/wwwroot --platform nodejs --platform-version 10 -i /tmp/8d856447f426192 -p compress_node_modules=tar-gz --log-file /tmp/build-debug.log 
4:49:07 pm ppdedsrftwu2-appservice1: Operation performed by Microsoft Oryx, https://github.com/Microsoft/Oryx
4:49:07 pm ppdedsrftwu2-appservice1: You can report issues at https://github.com/Microsoft/Oryx/issues
4:49:07 pm ppdedsrftwu2-appservice1: Oryx Version: 0.2.20200805.1, Commit: e7c39ede513143e9d80fd553f106f04268d770d4, ReleaseTagName: 20200805.1
4:49:07 pm ppdedsrftwu2-appservice1: Build Operation ID: |lvjLop9mFGA=.426fac1c_
4:49:07 pm ppdedsrftwu2-appservice1: Repository Commit : 2a73dbd2834715ba1fee5082d13b60
4:49:07 pm ppdedsrftwu2-appservice1: Detecting platforms...
4:49:07 pm ppdedsrftwu2-appservice1: Could not detect any platform in the source directory.
4:49:07 pm ppdedsrftwu2-appservice1: Error: Couldn't detect a version for the platform 'nodejs' in the repo.
4:49:09 pm ppdedsrftwu2-appservice1: Error: Couldn't detect a version for the platform 'nodejs' in the repo.\n/opt/Kudu/Scripts/starter.sh oryx build /tmp/zipdeploy/extracted -o /home/site/wwwroot --platform nodejs --platform-version 10 -i /tmp/8d856447f4292 -p compress_node_modules=tar-gz --log-file /tmp/build-debug.log 
4:49:20 pm ppdedsrftwu2-appservice1: Deployment failed.

在门户网站中定义了所有必要的设置。

SCM_DO_BUILD_DURING_DEPLOYMENT=true
WEBSITE_NODE_DEFAULT_VERSION=12
WEBSITES_PORT=3000
WEBSITE_HTTPLOGGING_RETENTION_DAYS=7

尝试使用node版本10,但仍然出现相同的错误。

有人遇到这个问题吗? - Prateek Naik
你修好了吗? - IamGrooot
1
还没有...仍在等待解决方案。 - Prateek Naik
1
我遇到了同样的问题,但在设置中将SCM_DO_BUILD_DURING_DEPLOYMENT=FALSE后问题得以解决。但这并不是解决方案,因为代码部署后没有进行构建,只是跳过了构建部分。下次如果我想要进行构建,我不知道该怎么做,也不确定它会如何与之前的部署一起工作。 - amg
1
@Mohit,你是如何部署这个应用程序的? - Prateek Naik
在Azure应用程序服务中从Git存储库部署(使用git clone url)。 - amg
5个回答

23

我联系了微软支持团队,他们建议将 SCM_DO_BUILD_DURING_DEPLOYMENT=FALSE。将其设置为 false 后,我能够部署该应用程序。但奇怪的是,在启用此选项之前,我进行了先前的部署,并且它也能够正常工作。


这对我有用,但你知道为什么吗?似乎在我升级到Angular 10之后开始出现问题。 - Diskdrive
@Diskdrive 不知道为什么会出现这个错误!对我来说,之前的部署也都成功了,但突然间就出现了这个错误。在联系支持团队后,他们提到请在 Microsft oryx 的 GitHub 上提出一个工单/问题,并且仍在等待原因。 - Prateek Naik
1
这对我有用,但它仍然很丑。 - Christophe Gigax
1
@ChristopheGigax 是的,它非常丑陋。我仍然无法弄清楚 :) - Prateek Naik

2

在我的情况下,我的Node应用程序位于子目录中,这导致GitHub Actions作业出现错误。在yml文件中显式设置工作目录可以解决此问题。即

- name: npm install, build, and test
    working-directory: ./subdirectory
    run: |
      npm install
      npm run build --if-present
      npm run test --if-present

这是针对 GitHub 部署而非 FTP 部署的要求。但是,如果您的 Node 根文件夹是存储在仓库的子文件夹中,则必须指定子目录。 - Anubis77

2
我也曾经遇到这个问题。
有两件事帮了我:
当使用Azure App服务扩展部署时:
1. 需要了解你的根NodeJS应用程序文件夹必须是在vscode中打开的根文件夹。 2. 如果你的NodeJS应用程序在子文件夹中,Azure将无法构建(或识别你的节点平台:因此你看到的错误消息),你根文件夹中的脚本。 最简单的解决方法是在根文件夹中打开vscode(即包含package.json文件的文件夹)。
此外:当你点击vscode Azure应用服务扩展中的部署按钮时,它可能允许你指定要部署的文件夹。

Deploy button location

您可以尝试添加应用设置:SCM_DO_BUILD_DURING_DEPLOYMENT,值为FALSE,并将部署槽设置为未选中。 这在Azure门户的配置-应用程序设置-添加+下进行。
记得在添加新的应用程序设置后点击保存按钮.....因为Azure...哈哈。
但我认为这主要是延迟应用程序构建直到文件被复制。
最后一件事:如果您从Github部署:请确保您的nodeJS应用程序也在Github存储库的根文件夹中。 如果不是,则需要更新工作流文件以将文件夹更改为子文件夹。
您只需在npm安装所述行之前添加cd yourfoldername并提交工作流更改即可。
希望这可以帮助您。

1

如果您正在从Visual Studio Code进行部署并部署dist/...文件夹,则不希望尝试实际构建,因此设置SCM_DO_BUILD_DURING_DEPLOYMENT=false

没有运行的node js服务器来在代理池部署管道上实际执行构建。Azure DevOps或Jenkins本身将拥有代理池来执行“正确(空引号)”的构建。是的,您的代码正在运行节点,因此在设置web app时选择的设置与这两个事物不同。相反,DevOps。

我在文档中没有找到它,因此感谢这里的答案和回复;但是,我只想提供更多关于答案的上下文。

这是升级到Visual Studio Web应用程序部署的一种方法,可以利用其他构建方法,如此处关于github actions的答案所述。


1
我真的不明白为什么会出现这个错误。
1:49:31 PM mikesapp: Detecting platforms...
1:49:31 PM mikesapp: Could not detect any platform in the source directory.
1:49:31 PM mikesapp: Error: Couldn't detect a version for the platform 'nodejs' in the repo.

我实际上使用了微软自己的Azure App Service扩展来创建我的新Azure Web App,并将我的Angular应用程序部署到Web服务上...但如果没有以下步骤,它就无法正确部署。
1. 登录Azure门户,并进入您的Web App。 2. 在左侧面板中,选择“设置\配置”。 3. 在“应用程序设置”选项卡下,要么创建一个名为“SCM_DO_BUILD_DURING_DEPLOYMENT”的全新设置,值为false...要么将现有值更改为false。 4. 在“常规设置”选项卡下,将以下内容复制粘贴到启动命令文本框中: pm2 serve /home/site/wwwroot --no-daemon --spa 5. 点击“保存”按钮。 6. 再次尝试使用VS Code部署您的应用程序。
说真的,我真不知道为什么微软自己的扩展会创建一个尚未准备好部署到Azure的Web App(并且在使用他们的扩展部署到Azure时会抛出一个晦涩的错误消息)。
希望这能帮到你。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接