WindowsでVagrant上にDocker環境を作るときのメモ
はじめに
Windows派閥のみなさんがローカルでDocker環境構築に苦労している描写をよく目にします。
最近はだいぶ他の勢力が充実してきて鳴りを潜めている感のあるDocker on Vagrant環境ですが、個人的にはWindows環境を汚さずにあれこれ試せるので好きです。(二重マウントをやっているせいか、マウント周りでのよくわからんエラーも多いですが)
DockerをのっけるVagrant環境はpackageにしちゃってもいいんですが、provisioning fileで管理しておくとInfrastructure as Codeって感じがしてキモチイイので、いつも僕が使っているprovisioning fileの共有と、簡単な説明をしておきます。
ぼくのかんがえたさいきょうローカル環境
僕がいつも使っている環境はこんなやつです。
ちょこちょこコメントしていきます。
Vagrantfile
ベースになるVagrantのboxはbento:centos-7.3
を使ってました。個人の好き好きで何使ってもいいと思います。ほんとはcoreos使いたかったんですが、Windowsだとうまくマウントできないっぽくて泣きました。
vagrant-hostupdaterプラグインを使用して、Windowsのhostsファイルを書き換えています。Docker環境にIPアドレスでしか繋げないのはちょっと切ないので活用しましょう。nginx-proxyコンテナを使うときなんかにも使います。
これはVagrantの共有ディレクトリでシンボリックリンクを使うための設定です。あんまりちゃんと理解しないまま使ってます。Windows側のコマンド入力も必要なことがあるっぽいです。詳しくは下記記事を参照。
Vagrant環境の初期化用shファイルを呼び出します。privileged
はshファイルを管理者権限で実行したい場合のオプションです。
docker-vagrant_init.sh
見たまんまですが、docker-vagrant_init.shではdockerおよびdocker-composeのインストールを行います。
おわりに
最近WSLがアツいみたいだし、Docker for Windowsの方がいいのかなー。