2016-11-13 2 views
1

単純なDjangoアプリケーションを作成してから、Gitlabにコミットしてプッシュします。Gitlabを使用するときにUbuntuにDjangoアプリケーションをデプロイする方法

git clone https://domain.com/path/to/git 

私はクローン化されたファイルの中で、私のPythonコードを見つけることができません:そのサーバ端末から、私はコマンドを実行するので、最後に私はUbuntuを使用している私の「本番サーバー」上でそのアプリケーションをインストールしたいと思います。

pythonコードをgitlabリポジトリから取得する正しい方法は何ですか?

+0

プロしてくださいクローンされたファイルのリストを表示して、実際に何が落ちたのかを知ることができます。 –

答えて

0

上のmod_wsgiをして問題が枝だった、私は、特定のブランチを選択し、適切なブランチ名は「開発」に続くオプション「-b」を適用解く:

git clone -b develop https://example.com/username/projectname.git 
0

まず、

は、あなたのgitがピップインストール済みのアプリケーションを含む、すべてのソースコードを持っていますか?

  • はいの場合:ubuntuマシンにdjangoバージョンをインストールして、プロジェクトをクローンしてください。おそらくそれが実行されます。
  • いいえ:virtual enviroment(いずれにしても推奨されるオプション)を作成する必要がある場合は、インストールされているすべてのpipインストール済みアプリケーションおよび djangoを仮想環境内にインストールします。その後、プロジェクトをクローンして実行します。
0

まあ私はgitlabについて知らないし、基本的にはサーバー上のあなたの設定に欠けているものはすべてあるが、gitリポジトリにgitフックを設定することができる。

ここでは、サンプルdjangoプロジェクトをデプロイするための受信後フックの例を示します。考慮すべきいくつかの事

#!/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 

ので:

  • このスクリプトはgitrepo.git /フック/ポストrecive
  • 上に配置されているファイル、ポストreciveは実行可能でなければなりませんchmod +x FILE_NAME
  • それあなたが仮想環境を持っていると仮定します。
  • は、それはあなたがレポと呼ばれるdependencies.txt上のファイルを持っていると仮定し、あなたは実行中のApacheの場合は、コードをリロードしますpip freeze > dependencies.txt(ノート、ファイルのすべてがサーバー上insatledされます)
  • touch wsgi.pyとそれを生成することができますデーモンモード(more info
関連する問題