【Azure 应用服务】App Service 在使用GIt本地部署,上传代码的路径为/home/site/repository,而不是站点的根目录/home/site/wwwroot。 这个是因为什么?
问题描述
App Service 在使用GIt本地部署,上传代码的路径为/home/site/repository,而不是站点的根目录/home/site/wwwroot。 这个是因为什么? 并且通过Git发布静态文件的时候不成功。出现“Could not detect any platform in the source directory.” 和 "Error: Couldn't detect a version for the platform 'php' in the repo."错误
查看日志
遇见发布时候的错误,除了在发布时候本地可以查看外,还可以在App Service的Kudu中查看。通过下列步骤来查看部署日志:
一:进入Kudu
二:进入发布日志(D:\home\site\deployments\temp-xxxx)
三:查看日志内容
2021-03-16T03:20:50 Updating branch 'master'. 2021-03-16T03:21:00 Updating submodules. 2021-03-16T03:21:00 Preparing deployment for commit id '208129ed8c'. 2021-03-16T03:21:00 Repository path is /home/site/repository 2021-03-16T03:21:00 Running oryx build... 2021-03-16T03:21:00 Command: oryx build /home/site/repository -o /home/site/wwwroot --platform php --platform-version 7.4 -i /tmp/8d8e82a85ff94d0 --log-file /tmp/build-debug.log 2021-03-16T03:21:04 Operation performed by Microsoft Oryx, https://github.com/Microsoft/Oryx 2021-03-16T03:21:04 You can report issues at https://github.com/Microsoft/Oryx/issues 2021-03-16T03:21:04 2021-03-16T03:21:04 Oryx Version: 0.2.20201105.1, Commit: 127d6a3c61a6c0eb67bcfeee0600c3fe71251839, ReleaseTagName: 20201105.1 2021-03-16T03:21:04 2021-03-16T03:21:04 Build Operation ID: |wb65mFzxGQU=.83c35c89_ 2021-03-16T03:21:04 Repository Commit : 208129ed8c6e3b88ee890d958000b1cd72b9bacc 2021-03-16T03:21:04 2021-03-16T03:21:04 Detecting platforms... 2021-03-16T03:21:05 Could not detect any platform in the source directory. 2021-03-16T03:21:05 Error: Couldn't detect a version for the platform 'php' in the repo. 2021-03-16T03:21:08 Error: Couldn't detect a version for the platform 'php' in the repo. /opt/Kudu/KuduConsole/Scripts/starter.sh oryx build /home/site/repository -o /home/site/wwwroot --platform php --platform-version 7.4 -i /tmp/8d8e82a85ff94d0 --log-file /tmp/build-debug.log 2021-03-16T03:21:08
问题分析
根据日志总的错误消息,发现有这样两段日志:
2021-03-16T03:21:00 Repository path is /home/site/repository 2021-03-16T03:21:00 Running oryx build... 2021-03-16T03:21:00 Command: oryx build /home/site/repository -o /home/site/wwwroot --platform php --platform-version 7.4 -i /tmp/8d8e82a85ff94d0 --log-file /tmp/build-debug.log 2021-03-16T03:21:05 Could not detect any platform in the source directory. 2021-03-16T03:21:05 Error: Couldn't detect a version for the platform 'php' in the repo. |
错误原因是由于执行命令 oryx build /home/site/repository -o /home/site/wwwroot --platform php xxxxxx 时发现build目录中并没有php相关文件导致的。由于使用local git部署需要使用Orxy进行build,如果成功后才会将repository文件夹中的内容输出到wwwroot下,所以最初的问题为什么wwwroot中没有内容。
由于目前orxy不支持纯静态文件的部署,在Github中也有相对应的Issue存在:https://github.com/microsoft/Oryx/issues/623
Support for static files? #623
Hi,
I have an existing static site (just .html files) which is currently deployed to netlify.
What configuration do you have to use to just deploy these files? At the moment the build is failing with the error
Error: Could not detect the language from repo.Many thanks!
Howard
@HowardvanRooijen I was able to get a site that was 100% static html, css, and javascript to deploy. It was definitely a workaround style approach but it did work:
- remove everything from my repository except
- git related files (.gitignore)
- .github directory
- directory (i called mines 'pregen') containing html, css, js, gifs, etc
- in the .github/azure-static-web-apps-*.yml file set the app_location to your html directory (I called mines 'pregen')
This worked for deploying truly static web site with no real build process to Azure Static Web Apps
@kichalla I think the main thing that is confusing here is that Oryx emits an error about detection. As discussed we probably want to have an option to not emit that error and just use the custom status code for saying detection failed. Static Web Apps assumes static content when we see that error code.
解决办法
可以在提交时,保证git仓储里面有一个php文件,这样可以保证orxy正常运行build。如增加一个简单的test.php,里面就放入非常简单的一句代码即可:
<?php phpinfo(); ?>
参考资料
从本地 Git 部署到 Azure 应用服务:https://docs.azure.cn/zh-cn/app-service/deploy-local-git
oryx build:https://github.com/Microsoft/Oryx#oryx-build
Support for static files? #623 : https://github.com/microsoft/Oryx/issues/623
- 【Azure 应用服务】Azure App Service (Windows) 使用Flask框架部署Python应用,如何在代码中访问静态文件呢?如何设置文件路径?是相对路径还是绝对路径呢?
- [SDK2.2]Windows Azure Storage (16) 使用WCF服务,将本地图片上传至Azure Storage (上) 客户端代码
- Android studio使用git,及git上传本地代码到服务代码库,使用命名。
- Windows Azure Cloud Service (23) 使用Full IIS模式部署多站点和虚拟目录
- 【应用服务 App Service】在Azure Web App的部署文件中,是否可以限制某些文件无法被访问?(如json)
- 【Azure 应用服务】App Service站点Header头中的中文信息显示乱码?当下载文件时,文件名也是乱码?
- Windows Azure Cloud Service (23) 使用Full IIS模式部署多站点和虚拟目录
- 【Azure 应用服务】在Azure App Service for Windows 中部署Java/NodeJS/Python项目时,web.config的配置模板内容
- [SDK2.2]Windows Azure Storage (15) 使用WCF服务,将本地图片上传至Azure Storage (上) 服务器端代码
- 使用Git将本地代码上传到GitHub
- 使用Git将本地代码上传到GitHub
- git在一个分支上修改了代码但是不想commit到本地git库,需要切换一个分支去修改代码,这个时候也可以使用git stash
- Liunx 安装git 本地上传代码同步到站点
- 【Azure 应用服务】App Service for Container中配置与ACR(Azure Container Registry)的RABC权限
- 使用Git上传本地项目代码到github
- 使用git从本地上传代码到码云远程仓库
- 使用Windows Azure Mobile Service开发Windows Phone 8 App【转http://www.cnblogs.com/dlbrant/archive/2013/04/02/2996627.html】
- win7下安装使用git以及上传本地代码到gitHub上
- 如何使用Git上传本地代码到GitHub上
- 使用Git版本控制工具,将代码上传到Github这个平台进行管理(创建远程创库,拉取代码到本地 - 克隆)