2016-11-25 8 views
1

docker runを使用してコンテナを作成する場合、ドッカーボリュームからマウントされているホストディレクトリにファイルを自動的にコピーする方法はありますか?最初の実行時にDockerコピーコンテナボリュームファイル

containerpathで見つかった

docker run -d -v /localpath:containerpath image 

ファイルを実行している私のlocalPathにディレクトリにコピーされません。

これを達成する方法はありますか?イメージには、ローカル開発のためにホストマシン上でアクセス可能でなければならないディレクトリが含まれています。

+1

-vオプションを使用すると、ローカルホストとコンテナ間の共有ボリュームを宣言することができます。ローカルボリュームとコンテナを介して作成された各ファイルは、別のファイルから参照できます。 –

+0

おそらく関連しています:http://stackoverflow.com/questions/36107442/mount-docker-host-volume-but-overwrite-with-containers-contents – nwinkler

+0

簡単:任意の方法でコピー作業を行うためのスクリプトを追加します。 .bash_profileでスクリプトを呼び出す行を追加するか、システムに相当する行を追加します。 –

答えて

1

私が知らなかったことは、コンテナのシェルからボリュームにファイルを追加するときに、ホストディレクトリにも作成されるということでした。だから、たくさんのデバッグとテストをした後で、私が望んだものを達成できたのです。

将来的にこれが必要な人は、自動的にgit repoをクローンしてホストのpublic_htmlディレクトリを編集の準備ができて、すでにホストにコピーされたファイルとボリューム

# Create Volume for the directory 
VOLUME /var/www/html 

COPY scripts/start.sh /start.sh 
RUN chmod -v +x /start.sh 
CMD ["/start.sh"] 

start.shディレクトリが助けを

#!/bin/bash 
if [ "$(ls -A /var/www/html)" ]; then 
echo "Directory already cloned" 
else 
echo "Repo files do not exist" ; 
git clone ... 
fi 

おかげ空の場合は、レポのクローンを作成するためのコードが含まれています

関連する問題