2017-03-18 12 views
4

これまではローカルLAMPスタックを使用してWebプロジェクトを開発し、手動でサーバーに展開しました。次のプロジェクトでは、mariaDB、NGINX、プロジェクトコンテナを作成して簡単に開発して展開できるように、ドッカーとドッカーを使用したいと考えています。docker-composeを使用してコンテナとホスト間でコードを同期する方法はありますか?

開発時ホストマシン上のコードディレクトリをドッカーコンテナと同期させたい。私は述べhereとしてCLIで

docker run -dt --name containerName -v /path/on/host:/path/in/container 

を実行することによって達成することができたけど、私はその内のドッキングウィンドウ・コンv2のファイルをしたいです。

I午前限り、このように見えるドッキングウィンドウ-composer.ymlファイルを持つように:私は私のホストマシンで、容器内の私の/ var/wwwディレクトリを同期するにはどうすればよい

version: '2' 

services: 
    db: 
     #[...] 
    myProj: 
     build: ./myProj 
     image: myProj 
     depends_on: 
      - db 
     volumes: 
      myCodeVolume:/var/www 
volumes: 
    myCodeVolume: 

を(Ubuntuのデスクトップを、MacOSのまたはWindowsマシン)?

ありがとうございました。

答えて

3

それはあなたが直接あなたのコンファイル内services.myProj.volumesキーの下にhost:containerマッピングを行う、ほとんど同じ方法です:

version: '2' 
services: 
    ... 
    myProj: 
     ... 
     volumes: 
      /path/to/file/on/host:/var/www 

トップレベルvolumesキーが削除されていること。 docker-composeは、それが任意の他の容器を作成する前に、最初に下キーをdocker volume createしようとするトップレベルvolumesセクションを見つけると

docker create --links db -v /path/to/file/on/host:/var/www myProj 

このファイルに変換することができました。これらのボリュームを使用して、コンテナ間で永続化したいデータを保持することができます。 私は例えば、あなたのファイルを取るのであれば、それはこのようなものに変換します:

docker volume create myCodeVolume 
docker create --links db -v myCodeVoume:/var/www myProj 
+0

ありがとうございます!ですから、私があなたを理解していれば、コンテナとホスト間の共有のために、コンテナと内部サービスのボリューム間でファイルを共有するためにトップレベルのボリュームを使用できますか? – pBuch

+0

はい。しかし、答えを完成させるために、内部サービスのボリュームは、CLIの場合と同じ方法で使用することができます:) –

関連する問題