我创建了一个简单的Django应用程序,然后我提交并推送到Gitlab。最后,我想在运行ubuntu的“生产服务器”上安装该应用程序,以便从该服务器终端运行命令:
git clone https://domain.com/path/to/git
我无法在克隆的文件中找到我的python代码。
从gitlab存储库获取python代码的正确方法是什么?
答案 0 :(得分:0)
首先,
您的git是否包含所有源代码,包括pip安装的应用程序?
答案 1 :(得分:0)
我不知道gitlab,并且在服务器上基本上没有关于你的配置的所有内容,但你可以在git repo上设置一个git hook。
这是一个用于部署示例django项目的post-receive钩子的示例。
#!/bin/bash
while read oldrev newrev ref
do
if [[ $ref =~ .*/master$ ]];
then
echo "master branch received, deploying..."
GIT_WORK_TREE="/PATH/TO/DJANGO/PROJECT" git checkout -f master > /dev/null
source /PATH/TO/DJANGO/VIRTUAL/ENVIRONMENT/bin/activate > /dev/null
echo "installing new pip dependencies..."
pip install -r /PATH/TO/DJANGO/PROJECT/dependencies.txt > /dev/null
echo "applaying new db migrations..."
python /PATH/TO/DJANGO/PROJECT/manage.py migrate_schemas > /dev/null
deactivate > /dev/null
touch /PATH/TO/DJANGO/PROJECT/PROJECT_NAME/wsgi.py > /dev/null
echo "Sever code reloaded."
else
echo "Received branch $ref, not deploying."
fi
done
所以要考虑一些事情:
chmod +x FILE_NAME
pip freeze > dependencies.txt
生成它(请注意,文件中的所有内容都将嵌入到服务器上)touch wsgi.py
会重新加载代码,如果您在守护程序模式下运行带有mod_wsgi的apache(more info)答案 2 :(得分:0)
问题是分支,我解决了选择特定分支,应用选项" -b"然后是正确的分支名称" develop":
git clone -b develop https://example.com/username/projectname.git