これまで、ローカルLAMPスタックを使用してWebプロジェクトを開発し、サーバーに手動でデプロイしてきました。次のプロジェクトでは、dockerとdocker-composeを使用して、mariaDB、NGINX、およびプロジェクトコンテナーを作成し、開発とデプロイを簡単にします。
開発するとき、ホストマシン上のコードディレクトリをDockerコンテナと同期させたいです。私はそれが実行することによって達成できることを知っています
docker run -dt --name containerName -v /path/on/Host:/path/in/container
述べられているようにCLIで ここ 、しかし私はdocker-composev2ファイル内でそれをやりたいです。
私はdocker-composer.ymlファイルを次のようにしています。
version: '2'
services:
db:
#[...]
myProj:
build: ./myProj
image: myProj
depends_on:
- db
volumes:
myCodeVolume:/var/www
volumes:
myCodeVolume:
コンテナ内の/ var/wwwディレクトリをホストマシン(Ubuntuデスクトップ、macos、またはWindowsマシン)と同期するにはどうすればよいですか?
ご協力ありがとうございました。
これはほとんど同じ方法で、作成ファイルのHost:container
キーのすぐ下でservices.myProj.volumes
マッピングを行います。
version: '2'
services:
...
myProj:
...
volumes:
/path/to/file/on/Host:/var/www
注最上位のvolumes
キーが削除されていること。
このファイルは次のように翻訳できます。
docker create --links db -v /path/to/file/on/Host:/var/www myProj
docker-compose
が最上位のvolumes
セクションを見つけると、他のコンテナを作成する前に、まずその下のキーをdocker volume create
しようとします。これらのボリュームを使用して、コンテナー間で永続化したいデータを保持できます。したがって、ファイルを例にとると、次のように変換されます。
docker volume create myCodeVolume
docker create --links db -v myCodeVoume:/var/www myProj