3

私はDocker(およびすべてのツール)にかなり慣れていません。Mac で Docker マシンとコンテナーをセットアップしようとしています。

私のコンテナーには、フラスコを利用した Python Web アプリケーションが含まれています。次のステートメントでアプリを実行しています

app.run(host='0.0.0.0', debug=True)

そして、これは私のdocker-compose.ymlがどのように見えるかです:

web:
  build: .                                                                                                                                                                                                
  ports:                                                                                                                                                                                                  
   - "5001:5001"                                                                                                                                                                                         
  volumes:                                                                                                                                                                                                
   - .:/volcode                                                                                                                                                                                          

5001 (docker-machine-ip:5001) でホストされているページを読み込もうとすると、Web アプリケーションに加えられた変更が表示されません。

 docker-compose build && docker-compose up

アップデート:

これは私の Dockerfile です:

FROM ubuntu:14.04
RUN apt-get -yqq update
RUN apt-get install -yqq python2.7
RUN apt-get install -yqq python-dev
RUN apt-get install -yqq libpq-dev
RUN apt-get install -yqq python-psycopg2
RUN apt-get install -yqq python-pip
ADD . /code
WORKDIR /code
RUN pip install -r server/requirements.txt
CMD python server/src/rest_server.py

これもホットローディングに相当します。(debug=True) は、変更された python ファイルをリロードする必要があります。

app.run(host='0.0.0.0', debug=True)

更新 2:

docker-compose.yml と Dockerfile のマウント ポイントが異なることに注意してください。同じマウント ポイントを持つと、次のエラーが発生します。

python: can't open file 'server/src/rest_server.py': [Errno 2] No such file or directory
4

1 に答える 1

1

マシンを使用しているため、ローカル ファイル システムの変更を追跡することはできません。実行docker-compose build && docker-compose upすると、ディレクトリの内容がマシン内の docker デーモンにコピーされます。

ローカルの変更を追跡したい場合は、docker をローカルで実行する必要があります (Mac ユーザーは使用できません)。しかし、共有フォルダーを使用して Linux vm を実行し、vm 内で docker デーモンを実行することはできると思います。

この問題は、今後の機能として提案されています。

ここで別のより長い答えを見つけることができます。

于 2015-10-03T12:36:55.213 に答える