2016-08-29 7 views
0

私は非常に単純なpythonスクリプトを持っています。私はそれをドッカー内から走らせようとしています。私はそれを簡略化しましたので、今すぐhello worldを印刷します。シンプルなPython Dockerスクリプト

私のドッキングウィンドウを設定:

[ドッキングウィンドウ-compose.yaml]

version: '2' 
services: 
    dev: 
    build: . 
    volumes: 
     - ./app.py:/app.py 

[Dockerfile]

FROM ubuntu 
RUN apt-get update -y 
RUN apt-get install -y python python-pip python-dev build-essential libpq-dev 


ADD ./requirements /code/requirements 

RUN pip install --upgrade pip 

RUN pip install -r /code/requirements/base.txt 

VOLUME /app.py 

CMD ["python","/app.py"] 

私がドッキングウィンドウ-構成を実行すると、私は次のエラーを取得します:

ERROR: for dev Cannot start service dev: oci runtime error: exec: "Python": executable file not found in $PATH

ただし、d ockerはUbuntu Imageに組み込まれるべきです。それは私のPython Flaskスクリプトに使用するのと同じイメージですが、問題はありません。

+0

pythonはベースのubunuイメージに既にインストールされていますか?私はそう薄くない。このイメージを使用するには、apt-get updateを最小限に抑え、dockerファイルにapt-getをインストールしてから、既存のコマンドを呼び出さないでください。 –

+0

謝罪、私は試行時に削除したdockerfileに2行追加しました異なるベースイメージ。 –

+0

2行目で、ファイル名またはディレクトリ名が "requirements"のコンテナにコピーします。しかし、あなたはubuntus環境に何かをインストールしたり登録したりしないでください。 –

答えて

1

あなたは単に「こんにちは」(または追加のライブラリを必要としないもの)を印刷したいので、あなたは次のテンプレートを使用することができます。

[ドッキングウィンドウ-compose.yml]

version: '2' 
services: 
    my_service: 
     build: ./<service_dir_name> # replace <.> with the directory containing your files in the current directory where .yml is located. 

[Dockerfile]

FROM python:2.7-alpine 

# Copy your files in this order: <files in the current dir> <destination in the container> 
COPY codes/ /app 

WORKDIR app 
ENTRYPOINT python -u my_code.py 

高山は、Pythonプリインストールされた非常に軽いのLinuxです。ライブラリを追加する必要がある場合は、Dockerfileに

RUN pip install <library> 

を追加してください。あなたのPythonコードは、

<files in the current dir> 

にあります。

1

あなたがインストールしたpythonがubuntuによって見つからないようです。私は(のpythonをインストールする行の後に)あなたのdockerfileに追加することをお勧め:

RUN "PYTHONPATH=/usr/lib/python2.7" >> ~/.bashrc 
CMD source ~/.bashrc && <other commands> 

それとも

RUN "PYTHONPATH=/usr/lib/python3.4" >> ~/.bashrc 
CMD source ~/.bashrc && <other commands> 

あなたはかなりのpython3

を使用する場合は、あなたのbashレジスタにあなたのpythonのパスを追加することファイルを作成し、それを有効にします。

関連する問題