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

时间:2013-09-16 21:40:26

标签: git azure github laravel-4 bitbucket

虽然我找不到解决方案,但这似乎是一件容易的事。我最近开始了一个需要在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来解决问题。

3 个答案:

答案 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)

有同样的问题提到这篇文章几次错了几次但是让它发挥作用。

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