虽然我找不到解决方案,但这似乎是一件容易的事。我最近开始了一个需要在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来解决问题。
答案 0 :(得分:7)
今天支持得不是很好,但您可以通过在应用设置中设置一些内容来使其工作:
SCM_REPOSITORY_PATH=..\repository
SCM_TARGET_PATH=..
这基本上告诉它将repo直接放在VirtualDirectory0
(而不是VirtualDirectory0\site
)中,然后部署到VirtualDirectory0\site
(而不是VirtualDirectory0\site\wwwroot
)。
这假设您的repo包含名为wwwroot的文件夹。
有关这些路径的一些信息here
答案 1 :(得分:3)
我找到了一个似乎完美无缺的解决方案,并允许对复制,覆盖等内容进行更多控制,因为它直接使用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。)承诺,推动,微笑
答案 2 :(得分:0)
有同样的问题提到这篇文章几次错了几次但是让它发挥作用。
解