私がプロジェクトを開発してテストしていたとき、私はvirtualenvwrapperを使用して環境を管理し、実行していました:
workon myproject
python myproject.py
もちろん、適切なvirtualenvに入ると、適切なバージョンのPythonと、プロジェクトを実行するための他の対応するライブラリを使用していました。
ここで、Supervisordを使用して、デプロイの準備ができているのと同じプロジェクトを管理したいと思います。問題は、スクリプトを実行する前に適切なvirtualenvをアクティブにするようにSupervisordに指示する適切な方法は何ですか?これを行う別のbashスクリプトを作成し、そのスクリプトをSupervisord構成ファイルのコマンドフィールドで呼び出す必要がありますか?
コマンドラインからvirtualenvを使用する1つの方法は、virtualenv内にあるpython実行可能ファイルを使用することです。
私にとっては、仮想環境が.virtualenvs
ディレクトリ。例えば
/home/ubuntu/.virtualenvs/yourenv/bin/python
workon
する必要はありません
のために supervisor.conf
トルネードアプリの管理:
command=/home/ubuntu/.virtualenvs/myapp/bin/python /usr/share/nginx/www/myapp/application.py --port=%(process_num)s
Virtualenv/binパスをsupervisord.conf
のenvironment
に追加します。
[program:myproj-uwsgi]
process_name=myproj-uwsgi
command=/home/myuser/.virtualenvs/myproj/bin/uwsgi
--chdir /home/myuser/projects/myproj
-w myproj:app
environment=PATH="/home/myuser/.virtualenvs/myproj/bin:%(ENV_PATH)s"
user=myuser
group=myuser
killasgroup=true
startsecs=5
stopwaitsecs=10
ファーストラン
$ workon myproject
$ dirname `which python`
/home/username/.virtualenvs/myproject/bin
以下を追加
environment=PATH="/home/username/.virtualenvs/myproject/bin"
[program:blabla]セクションの下の関連するsupervisord.confに。