2017-12-21 10 views
0

を構成:無効化キャッシュは、私はDockerfileはこのようになります場合会った

FROM image with fully-configured server (without application) 
COPY war created locally by IntelliJ inside server in Docker image 

を基本的に私はこのDockerfile、ドッカーでコンテナを始めているたびに新しいイメージを作成します。この.warファイルが頻繁に変更されているため(開発中に簡単に.warイメージを展開するためにDockerを使用するのが目的です)、このアプリケーションの古いバージョンではイメージを使用していません。これはディスク上のスペースに問題を引き起こし、私は廃止予定のイメージを手動で整理しなければなりません。

を無効にする方法はありますか?ドッカーのキャッシュ?私はドッカー作成ファイルで接続された一連のサーバーを使用していますので、それが何らかの形で管理して、もはや不要になったときに自動的に削除することができますか?

docker build--no-cacheのパラメータを持ちますが、すべてのレイヤ(すべてのコマンドは常に実行されますが、イメージ/レイヤーのリポジトリ内に保存されます)のキャッシュは無効になります。また--force-rmは私のために働いていません。

+0

私はダングリングイメージを取り除く方法を既に知っているとは確信していませんが、私は ダーリングイメージを削除することを願っています。 -aq -f dangling = true) ' – SangminKim

答えて

0

Docker documentationと書かれているように、すべてのドッカービルドでファイルが変更されると、チェックサムファイルが変更されるため、キャッシュは無視されます.DockerfileからCOPYコマンドを削除して、VOLUMEを使用し、最初に戦争が変わることを確実にするために実行する

+0

Windows 7では、ボリュームを作成するのは簡単ではありませんが、アイデアはうまくいくようです。 Dockerは実際に画像をぶら下げて管理する方がよいでしょう。 – deem

+0

バインドマウントを使用して実行時にローカルディレクトリをコンテナに移動すると、そのディレクトリ内の.warファイルを単純に更新できます。それを見てください。 –

+0

...注:COMPOSE_CONVERT_WINDOWS_PATHSのenv varを次のように使用する必要があります。https://docs.docker.com/compose/reference/envvars/#compose_convert_windows_paths –

関連する問題