2017-06-26 3 views
1

私はガンコンプロセスを実行しているドッカーイメージを持っていますが、毎回実行するとエラーImportError: No module named 'crm'が発生します。だから私はこの問題を解決するためにthis SO postに従っています。Dockerイメージが正常に動作するようにUbuntu 16.04でPYTHONPATHを設定する

はしかし、私は実行時に

ENTRYPOINT ["PYTHONPATH=`pwd`/..", "/usr/local/bin/gunicorn", "web_interface:app", "-w 4", "-t 90", "--log-level=debug", "-b 0.0.0.0:8000", "--reload"] 

コンテナは、私はPYTHONPATHのコマンドを実行することができますどのように

ERROR: for web Cannot start service web: oci runtime error: container_linux.go:247: starting container process caused "exec: \"PYTHONPATH=`pwd`/.. \": stat PYTHONPATH=`pwd`/.. : no such file or directory" 

任意のアイデアをバック吐きますか?

Macではローカルでは動作しますが、Ubuntuコンテナでは動作しないことを記載する必要があります。

"PYTHONPATH= PWD /.."

"PYTHONPATH=$(pwd)/.."

"PYTHONPATH=$PWD/.."

答えて

8

を動作しているようだ。私は何をしようとしていること

ENV命令でENTRYPOINTの外側の環境を定義します。

ENV PYTHONPATH /absolute/path/to/the/pythonpath/inside/the/container 
ENTRYPOINT ["/usr/local/bin/gunicorn", "web_interface:app", "-w 4", "-t 90", "--log-level=debug", "-b 0.0.0.0:8000", "--reload"] 
+0

グレート、私はこの答え方が好き。だから私はパス名の代わりに '$ PWD/..'を使うことができます –

+0

'$ PWD'については現在の' WORKDIR'(https://docs.docker.com/engine/reference/ビルダー/#workdir)。イメージを構築しているので、パスをコントロールでき、アプリケーションディレクトリからの相対パスを取る必要はありません。 – zigarn

0

をだから、これはあなたがすべき

ENTRYPOINT ["/usr/local/bin/gunicorn", "--pythonpath=`$PWD`/..", "web_interface:app", "-w 4", "-t 90", "--log-level=debug", "-b 0.0.0.0:8000", "--reload"] 
関連する問題