はじめに
メールテスト可能な最強のWordPress開発環境をDockerで構築するでは、DockerをVagrantで動かしています。
Vagrantであれば、Windows/Mac問わず同じ環境を構築できることができるので、理論的にはどんなクライアント環境でもDockerで同じ開発環境を構築できるはずです。
WindowsにおいてはVirtualBoxとHyper-Vが共存できないため、都度切り替えをすることなく対応できるのでスムーズです。
ベースとなるBox
Dockerを動かすベースはCoreOSを利用しています。
coreos/coreos-vagrant: Minimal Vagrantfile for Container Linux
CoreOSはDocker専用を起点とした軽量Linux OSなので、Dockerを扱うにあたって必要なものも揃っていて、イメージサイズが非常に軽くて扱いやすいです。
ファイル構成
share というフォルダはDockerと同期するフォルダとして作成しておきます。
coreos-vagrant/
├─ share/
├─ .
〜省略〜
├─ .
└─ Vagrantfile
Vagrantfile
クローンしたCoreOSのVagrantfile最終行の end の前に追記をして、以下をVagrant起動時に実現します。
- Docker Compose をインストールする
- コンテナとのフォルダを同期する
- CoreOS の自動アップデートを無効にする
CoreOSの自動アップデートを無効にする理由は、あくまでもローカル開発なので開発スピード優先として、CoreOSのアップデートに伴う再起動をさせないためです。
セキュリティと引き換えであることをご理解ください。
Docker Compose については、公式サイトよりバージョンを確認して、最新バージョンを指定した方が良いと思います。
〜省略〜
end
# ---------------ここから追記-------------
# Docker Compose をインストールする
config.vm.provision :shell, inline: <<-SHELL
curl -L https://github.com/docker/compose/releases/download/1.23.1/docker-compose-`uname -s`-`uname -m` > ~/docker-compose
sudo mkdir /opt
sudo mkdir /opt/bin
sudo mv ~/docker-compose /opt/bin/docker-compose
sudo chown root:root /opt/bin/docker-compose
sudo chmod +x /opt/bin/docker-compose
SHELL
# コンテナとのフォルダを同期する
config.vm.synced_folder "./share", "/home/core/share", id: "core", :nfs => true, :mount_options => ['nolock,vers=3,udp']
# CoreOS の自動アップデートを無効にする
config.vm.provision :shell, inline: <<-SHELL
sudo systemctl stop update-engine
SHELL
# ---------------ここまで追記-------------
end
Windowsではプラグインのインストールが必須
コンテナとのフォルダを同期するには、Windowsではvagrant-winnfsdプラグインをインストールする必要があります。
コメント