2017-03-25 12 views
1

私の現在の開発環境では、ファイルを変更するたびに自動的にコードをリロードすることができます(nodemon/webpack)。しかし私は(minikube)の環境を設定しており、すぐに3-4の関連サービスをすぐに開くことができます。ドッカーコンテナからホストコンピュータへのrsyncの方法

すべて正常に動作していますが、現在自動コードリロードを実行していません。ボリュームをマウントしようとしましたが、dockervirtualboxがファイルを処理して、競合がfile changes from the host not reflected in docker containerになるような競合が発生しています。 (それは私がこの問題に関連している最初のリンクではありません、それは別の日にそれをグーグルで最初に私が見つけた)...

とにかく、長い話が短くて、 。私は、非常に少数の解決策で、ウェブ全体に渡って問題を見つけました。私が今までに見つけた最良の解決策は、This person used tar from the hostがフォルダを同期することです。

しかし、私はコンテナからの解決策を希望します。その理由は、コンテナからスクリプトを実行して、特定のレポで開発を開始するたびに開発者がホストコンピュータでスクリプトを実行する必要がないようにするためです。

これを行うには、コンテナからホストマシンにrsyncを実行する必要があります。そして、私は文法を書く方法を考え出すのに驚くほど多くの問題を抱えています。

のは、私のアプリのように、それぞれ自分のコンテナとホストに存在するふりをしてみましょう:

/workspace/app # location in container 
/Users/terence/workspace/app # location in host computer 

どうすればよいのrsyncホストへのコンテナから? 172.17.0.17127.0.0.1を使用してみました。それを行う方法がある場合は完全にはわからないのですか?私が試した

例:

rsync -av 172.17.0.17:Users/terence/workspace/app /workspace/app 
rsync -av 127.0.0.1:Users/terence/workspace/app /workspace/app 

答えて

0

あなたがホストから(ではないコンテナ内)のrsyncを実行している場合は、代わりにdocker cpを使用することもできます。

例えば、docker cp containerName:/workspace/app Users/terence/workspace/app

でした
1.ホストまたはコンテナ内からrsyncを実行していますか?
コンテナ内部から来た場合は、--networkコンテナが(つまりブリッジされているかホストされているか)マウントされているボリュームに多く依存します(つまり、コンテナを起動したときに-vフラグを使用しましたか? )

アップデート:rsyncをコンテナ内で動作させるには、ホストのdirをコンテナに公開する必要があります。

あなたが解決策を考えると、このことを念頭においてください。host dir as a data volume

:ホストディレクトリは、その性質により、ホスト依存です。このため、Dockerfileからホストディレクトリをマウントすることはできません.VOLUME命令は、ホストディレクトリを渡すことをサポートしていません。ビルドされたイメージは移植可能である必要があるためです。ホストディレクトリは、すべての潜在的なホストで利用できるわけではありません。

+0

私はコンテナ内から実行したいと思います。私はボリュームをマウントしていません。私はホストネットワークを使用しています。 –

関連する問題