名前付きデータボリューム(データコンテナではない)をどのように使用すべきか混乱しています。Dockerという名前のボリュームが更新されていません
ドッキング用ファイルを使用して/usr/src/app
にマウントされた名前付きデータボリュームapp_src
があります。しかし、ソースコードを変更した後(ローカル)には、イメージをビルドしてもボリュームは更新されません。私はそうのようなイメージを構築してい
、
docker-compose -f development.yml build
、それdocker-compose -f development.yml up -d
を実行しています。
ボリュームが変更されていないことを確認するには、実行中のコンテナに接続していて、ソースコードが更新されていないことを確認してください。
私のweb
サービスのための私のドッカーの作成ファイルdevelopment.yml
とDockerfile
はここにあります。 版: '2'
services:
web:
restart: always
build: ./web
expose:
- "8000"
volumes:
- app_src:/usr/src/app
links:
- postgres:postgres
env_file: development.env
command: ./start_web.sh
volumes:
app_src: {}
FROM python:3.4.4
WORKDIR /usr/src/app
RUN rm -rf /usr/src/app/*
COPY . /usr/src/app/
RUN pip install --no-cache-dir -r requirements.txt
私はそうのようなホストを装着することで動作させることができ、
volumes:
- ./web/src:/usr/src/app
私はドッキングウィンドウ1.11.2を実行しているのUbuntu 16.04上です。私の理解は間違っていますか?私はドキュメンテーションを見ましたが、ボリュームを本当にうまく説明したものを見つけることができました。
これは意味があります。私はそれが構成でどのように構築されるのか少し混乱していました。サービスを起動するときに、指定されたボリュームをドッカーから作成する方法はありますか? 'docker-compose up' - > volのディレクトリをクリアし、ホストから最新のファイルをコピーしたいのですか? –
Dockerが空のフォルダをチェックした後に起こるため、コンテナの開始時にディレクトリを削除することはできません。常にこれをコンテナの内容で初期化し、前のボリュームを削除しても構わないと思っているのであれば、本当にそれをボリュームとして必要とするかどうか尋ねる必要があります。 – BMitch
あなたは正しいです。私の解決策は、ボリュームを一括して削除し、開発中にホストファイルからマウントすることです。私は複数のコンテナにコードを共有することを考えていたため、最初はボリュームがありましたが、実際にはそれを行うのは意味がありません。 –