如何在远程Windows服务器上使用virtenv在带有git钩子的IIS上部署Django?

如何在远程Windows服务器上使用virtenv在带有git钩子的IIS上部署Django?,django,git,iis,Django,Git,Iis,根据以下说明,我在远程Windows Server 2012 R2(VPN环境)的IIS上使用Python 3.6.4成功安装并设置了Django(2.0.2): 我使用SQL Server作为后端,并将敏感数据(如DJANGO_SECRET_KEY、数据库_PASSWORD等)作为环境变量存储在IIS的FastCGI设置中(请参阅上面的链接,IIS步骤14中的配置FastCGI部分) 此时我问我,如何部署我的应用程序并执行所有必要的设置,如从requirements.txt、collec

根据以下说明,我在远程Windows Server 2012 R2(VPN环境)的IIS上使用Python 3.6.4成功安装并设置了Django(2.0.2):

我使用SQL Server作为后端,并将敏感数据(如
DJANGO_SECRET_KEY
数据库_PASSWORD
等)作为环境变量存储在IIS的
FastCGI设置中(请参阅上面的链接,IIS步骤14中的配置FastCGI部分)

此时我问我,如何部署我的应用程序并执行所有必要的设置,如从
requirements.txt
collectstatic
makemigrations
等安装软件包

通过谷歌搜索,我找到了一个可能的解决方案,使用git钩子,特别是与本文相应的post receive钩子:

因此,我根据以下说明在相同的IIS上成功地安装了Bonobo Git服务器:

我的想法是像在开发环境中一样,将所有必需的命令放入这个post-receive-hook文件中。我在位置
\inetpub\wwwroot\Bonobo.Git.Server\App\u Data\Repositories\myapp master\hooks\post receive\code>处找到了这个文件:

#!/bin/sh
DEPLOYDIR=/c/apps/myapp
VIRTENVDIR=/c/virtualenvs/myapp
GIT_WORK_TREE="$DEPLOYDIR" git checkout -f
cd $VIRTENVDIR
source Scripts/activate
cd $DEPLOYDIR
pip install -r requirements.txt
python manage.py collectstatic --noinput
python manage.py makemigrations
python manage.py migrate
我向
脚本/activate
文件授予权限,在
推送过程中,我没有从我的开发环境收到任何错误。但是当前的问题是第6行的命令没有激活虚拟环境,因此没有发生迁移等情况。通常,我会使用以下命令通过命令行提示符激活虚拟环境:

cd C:\virtualenvs\myapp
Scripts\activate.bat
但是我不能在post-revive文件中使用它,因为它使用基于unix的命令

有谁能帮助我或更好地了解如何在windows环境中以更好的方式部署而不必进入云端