Git Azure déployé dans le dossier du site pas wwwroot
cela semble être une tâche facile bien que je ne puisse pas trouver la solution. J'ai récemment lancé un projet Laravel 4 qui doit être hébergé sur Azure. J'ai relié Azure pour déployer à partir de bitbucket quand un changement est fait. Cela pousse cependant les fichiers dans le dossier "wwwroot" en Azure (le dossier public). Certains des fichiers framework ne devraient pas être dans le dossier public, donc je voudrais pousser dans le dossier parent "site".
Après quelques recherches, j'ai découvert que vous pouvez utiliser .fichier de déploiement pour configurer les options de déploiement (https://github.com/projectkudu/kudu/wiki/Deployment-hooks)
alors j'ai essayé .le fichier de déploiement:
[config]
DEPLOYMENT_TARGET = C:DWASFilesSitesSITENAMEVirtualDirectory0site
Malheureusement, cela provoque une erreur:
les répertoires Source et destination ne peuvent pas être des sous-répertoires l'un de l'autre
cela serait dû au fait que le dossier du dépôt se trouve dans le dossier du site aussi. Si je change le fichier de déploiement à:
[config]
DEPLOYMENT_SOURCE = C:DWASFilesSitesSITENAMEVirtualDirectory0repo
DEPLOYMENT_TARGET = C:DWASFilesSitesSITENAMEVirtualDirectory0site
il tourne sans erreur mais il ne pousse rien car le dossier repo est vide, je suppose que si je pouvais obtenir Azure pour mettre les fichiers dans repo à la place de siterepository tout irait bien.
peut-être que j'en ai assez de compliquer les choses et j'apprécierais vraiment tout conseil. Dans le pire des cas, je peux simplement pousser dans le dossier "wwwroot" et utiliser un web.config pour arranger les choses.
4 réponses
ce n'est pas très bien supporté aujourd'hui, mais vous pouvez être en mesure de le faire fonctionner en mettant quelques choses dans les paramètres de l'application:
SCM_REPOSITORY_PATH=..\repository
SCM_TARGET_PATH=..
ceci lui dit en gros de mettre la pension directement dans VirtualDirectory0
(par opposition à VirtualDirectory0\site
), puis de déployer VirtualDirectory0\site
(par opposition à VirtualDirectory0\site\wwwroot
).
ceci suppose que votre repo contient un dossier nommé wwwroot.
Quelques infos sur ces chemins ici
j'ai trouvé une solution qui semble fonctionner parfaitement et permet un peu plus de contrôle sur ce qui est copié, réécrit, etc parce qu'il utilise xcopie directement. Étant donné un projet git avec wwwroot et myapp (dans mon cas, ils sont dans la racine), vous pouvez utiliser un fichier batch de déploiement pour copier ces dossiers dans le wwwroot et un dossier ci-dessus. La solution est venue de cet article:
1.) Créer deux les fichiers dans votre git racine:
.déploiement
[config]
command=deploy.cmd
déployer.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.) Commit, push, sourire
avait le même problème référé à ce post à quelques reprises l'a fait de Travers à quelques reprises mais l'a fait fonctionner.
SOLUTION
- en utilisant un ftp comme filezila, connectez-vous à votre site web et créez un dossier de votre application sous le dossier du site, tel que site/myapp
- sur le portail de gestion azure sélectionnez votre site web azure à
- sous l'onglet configuration faites défiler jusqu'à paramètres de l'application
- définir la clé SCM_TARGET_PATH to ..\monappli
- PRENDRE NOTE DE LA barre oblique \ PAS de barre oblique inverse /
veuillez également essayer de mettre un fichier texte fictif dans le "wwwroot" sous le dossier du projet. Cela permettra de s'assurer que le répertoire est créé.