问题 Azure Git部署到站点文件夹而不是wwwroot


尽管我找不到解决方案,但这似乎是一件容易的事。我最近开始了一个需要在Azure上托管的Laravel 4项目。我已经将Azure链接到进行更改时从bitbucket进行部署。但是,这会将文件推送到Azure(公用文件夹)中的“wwwroot”文件夹中。一些框架文件不应该在公共文件夹中,因此我想将其推送到父文件夹“site”。

经过一些研究,我发现你可以使用.deployment文件来配置部署选项(https://github.com/projectkudu/kudu/wiki/Deployment-hooks

所以我试过.deployment文件:

[config]
DEPLOYMENT_TARGET = C:\DWASFiles\Sites\SITENAME\VirtualDirectory0\site

不幸的是,这会导致错误:

源目录和目标目录不能是彼此的子目录

这可能是因为存储库文件夹位于站点文件夹中。如果我将部署文件更改为:

[config]
DEPLOYMENT_SOURCE = C:\DWASFiles\Sites\SITENAME\VirtualDirectory0\repo
DEPLOYMENT_TARGET = C:\DWASFiles\Sites\SITENAME\VirtualDirectory0\site

它运行没有错误,但它没有任何推动,因为repo文件夹是空的,我想如果我可以让Azure将文件放入\ repo而不是\ site \ repository一切都会好的。

也许我过于复杂化了,我真的很感激任何建议。最糟糕的情况我可以直接推送到“wwwroot”文件夹并使用web.config来修复问题。


12805
2017-09-16 21:40


起源

在运行时,您是否需要父文件夹中的那些文件? - David Ebbo


答案:


今天这个支持得不是很好,但您可以通过在应用设置中设置一些内容来使其工作:

SCM_REPOSITORY_PATH=..\repository
SCM_TARGET_PATH=..

这基本上告诉它直接把回购 VirtualDirectory0 (而不是 VirtualDirectory0\site),然后部署到 VirtualDirectory0\site (而不是 VirtualDirectory0\site\wwwroot)。

这假设您的repo包含名为wwwroot的文件夹。

关于这些路径的一些信息 这里


7
2017-09-17 01:18





我找到了一个似乎完美的解决方案,并允许更多地控制被复制,覆盖等的内容,因为它直接使用xcopy。鉴于使用wwwroot和myapp的git项目(在我的情况下,它们位于根目录中),您可以使用部署批处理文件将这些文件夹复制到wwwroot和上面的文件夹。解决方案来自这篇文章:

1.)在你的git root中创建两个文件:

.deployment

[config]
command=deploy.cmd 

deploy.cmd

@echo off
echo ---Deploying site

REM ---Deploy the wwwroot folder in repository to default target (wwwroot)
xcopy %DEPLOYMENT_SOURCE%\wwwroot\* %DEPLOYMENT_TARGET% /Y /s 

REM ---Deploy the myapp folder in repository to folder above default target (wwwroot\..\myapp)
xcopy %DEPLOYMENT_SOURCE%\myapp\* %DEPLOYMENT_TARGET%\..\myapp /Y /s 

2.)承诺,推,微笑


3
2017-08-20 17:10





有同样的问题提到这篇文章几次错了几次,但让它工作。

  1. 使用像filezila这样的ftp,ftp连接到你的网站并在站点文件夹下创建你的app文件夹,例如site / myapp
  2. 在azure管理门户上,选择要部署到的azure网站
  3. 在配置选项卡下滚动到应用程序设置
  4. 将密钥SCM_TARGET_PATH设置为.. \ myapp
  5. 注意正斜杠\ NOT反斜杠/

0
2018-01-20 11:07



两年后,这不起作用:( SCM_TARGET_PATH被忽略,git repo总是在wwwroot下创建,由app设置“SCM_REPOSITORY_PATH”引起:“wwwroot”由azure设置,不能覆盖。任何更新如何修复? - Christian Schäfer
有趣的是,这是正斜杠:/和反斜杠:\ - PeteK68


还请尝试将虚拟文本文件放在项目文件夹下的“wwwroot”中。这将确保创建目录。


0
2017-09-08 20:16