2017-02-13 6 views
1

私は 'tomcat:7.0.75-jre8-alpine'ベースイメージで作業しており、Webアプリケーションとその設定ファイルをデプロイします。Dockerが同じフォルダにファイルをコピーしてマウントする

...... 
COPY <my-app-configurations> /org/app/data 
COPY <my-app-configurations> /org/app/conf 
...... 
CMD ["catalina.sh", "run"] 

そして私は上の画像からコンテナを作成するためのコマンドの下に使用しています::以下は、私はDockerfileでやっているもの

$ docker run -p 8080:8080 -v "/c/Users/jaffy/app:/org/app" myapp-image 

「/ C /ユーザ/ jaffy /アプリ」フォルダが最初です空で、その中に '/ org/app'の内容をすべて取り込み、同期したままにしておきます。

すべての設定は '/ org/app'フォルダにコピーされますが、 '/ c/Users/jaffy/app'がマウントされると '/ org/app'が消去/空になります。

ホストマシンのフォルダは最初は空のままですが、その後はコンテナの '/ org/app'フォルダとそのサブディレクトリの正確な状態が反映されます。

ありがとうございます。

+0

私はビルドで何かを実装することが可能であるとは思いません時間。これは特別な用途ですか?ビルドコンテキストとして使用するフォルダに、アプリケーションとconfファイルを置くことができます。 – Francesco

答えて

0

ボリュームをマウント/共有するときにコンテナのフォルダの内容を保持する方法はありません。これは、そのコマンドがマージしていないフォルダを置き換えるためです。

あなたが同じように変更する必要があるファイルをマウントすることができ、フォルダ内のすべてのファイルを交換する必要がない場合:

 
$ docker run -p 8080:8080 -v "/c/Users/jaffy/app/web.xml:/org/app/web.xml" my-app-image 
関連する問題