Implementación de Azure Git en la carpeta del sitio no wwwroot

Esto parece ser una tarea fácil, aunque no puedo encontrar la solución. Recientemente comencé un proyecto de Laravel 4 que debe estar alojado en Azure. He vinculado Azure para implementar desde Bitbucket cuando se realiza un cambio. Sin embargo, esto empuja los files a la carpeta "wwwroot" en Azure (la carpeta pública). Algunos de los files de frameworks no deberían estar en la carpeta pública, por lo tanto, me gustaría ingresar al "sitio" de la carpeta principal.

Después de investigar, descubrí que puedes usar el file .deployment para configurar las opciones de implementación ( https://github.com/projectkudu/kudu/wiki/Deployment-hooks )

Así que probé el file .deployment:

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

Lamentablemente, esto causa un error:

Los directorys de origen y destino no pueden ser subdirectorys entre sí

Esto se debería a que la carpeta del repository también se encuentra en la carpeta del sitio. Si cambio el file de implementación a:

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

Se ejecuta sin errores pero no presiona nada ya que la carpeta repo está vacía, supongo que si pudiera conseguir que Azure colocara los files en \ repo en su lugar \ sitio \ repository, todo estaría bien.

Tal vez estoy complicando las cosas y realmente agradecería cualquier consejo. En el peor de los casos, puedo presionar a la carpeta "wwwroot" y usar un web.config para arreglar las cosas.

Esto no está muy bien soportado hoy, pero puede hacer que funcione estableciendo un par de cosas en la configuration de la aplicación:

 SCM_REPOSITORY_PATH=..\repository SCM_TARGET_PATH=.. 

Básicamente, esto le dice que coloque el repository directamente en VirtualDirectory0 (en lugar de VirtualDirectory0\site ), y luego que implemente en VirtualDirectory0\site (a diferencia de VirtualDirectory0\site\wwwroot ).

Esto supone que su repository contiene una carpeta llamada wwwroot.

Algo de información sobre estos paths aquí

Encontré una solución que parece funcionar perfectamente y permite un poco más de control sobre lo que se copy, sobrescribe, etc. porque usa xcopy directamente. Dado un proyecto de git con wwwroot y myapp (en mi caso están en la raíz) puede usar un file por lotes de implementación para copyr esas carpetas al wwwroot y una carpeta arriba. La solución vino de este artículo:

  • Felicitaciones a Kudu: Windows Azure Websites Secret Sauce

1.) Crea dos files en tu raíz de git:

.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.) Comprometerse, empujar, sonreír

si el mismo problema se refería a este post un par de veces lo hizo mal un par de veces pero lo hizo funcionar.

SOLUCIÓN

  1. Usando un ftp como filezila, ftp conéctese a su website y cree una carpeta de su aplicación en la carpeta del sitio, como site / myapp
  2. en el portal de administración azul select su website azul que desea implementar en
  3. en la pestaña de configuration desplácese hacia abajo a la configuration de la aplicación
  4. establece la key SCM_TARGET_PATH en .. \ myapp
  5. TENGA EN CUENTA LA barra inclinada \ NO barra invertida /

Intente también colocar un file de text ficticio en "wwwroot" debajo de la carpeta del proyecto. Esto se asegurará de que se cree el directory.