開発環境構築には、ずっとdocker-machineを使っててそれなりに充足はしてたんですが、最近になってWindowsが「○○ Creator Update」みたいなのを定期的に行うようになって、その度に、docker-machineとVirtualBoxもろともバージョンアップを求められる、場合によっては、仮想マシンごと作り直さないと動かないみたいな現象に陥るため、毎回いちいち業務中にそんなの対応してられないってことで、docker-machineを使うのをやめて乗り換え先を探す事にしました
Barge
Bargeという軽量OSがとてつもなくよさげだったので乗り換える事に
Vagrant
とにかく最短で開発環境を構築できる、かつ、現場で支給されるPCも、Win,Macとまちまちなので、どのプラットフォームでも同じ手順で集約出来るVagrantが適切な気がしたので、Vagrant版を使う事にしました
※ちなみに今回の構築はWindows10です
Vagrant: MSYS2でPATHを通す
コマンドプロンプトやらPowerShellやらは使いたくないのでMSYS2からVagrantを操作します
インストール時にWindowsホスト側に環境変数PATHが設定されますが、MSYS2側に引き継がれない場合は以下を実行します
MSYS2にWindwosのPATHが引き継がれなかった時のメモ
Vagrant: ディレクトリをつくる
Vagrantについてはnoobなので必要最低限ぐらいしかしてないです
1 | $ mkdir -p Vagrant/barge |
Vagrant: Vagrantfileを書く
Vagrantfileが公開されているので、これを拝借してちょっと手を加えました
1 | $ vagrant plugin install vagrant-disksize |
SSD+HDD構成だったので、HDDのPATHをVAGRANT_HOME
環境変数に設定。(デフォは[ユーザ名]/.vagrand.d/とかになってるはず)
1 | キー: VAGRANT_HOME |
最終的なVagrantfileはこうなりました
Vagrant: vagrant sshが繋がらない
1 | $ vagrant up |
upしたあと、vagrant ssh
としても繋がらなかった
調べるの面倒だったので直接~/.ssh/config
に書きました
1 | $ vagrant ssh-config |
barge: docker-composeを入れる
先人の記事よりコマンド拝借してコピペ(バージョンだけ都度確認)
1 | $ wget -L https://github.com/docker/compose/releases/download/1.18.0/docker-compose-`uname -s`-`uname -m` |
barge: pkg
9zillaを入れるためにgitとvimを入れる
1 | $ sudo pkg install git |
1 | $ git clone https://github.com/nobiki/9zilla |
ここでエラーになってしまったため後日調査(とりあえずdocker-compose.ymlだけコピペで入れました)
1 | $ docker-compose -f 9zilla-docker-compose.yml up -d |
ssh: 中のコンテナにSSHする
SSHをdaemon化してあるコンテナに対してはホスト(barge)を踏み台にして接続
1 | $ cat ~/.ssh/config |
起動時にdocker-compose startする
/etc/init.d/start.sh
が起動時に実行されるそうなので、以下を記述
1 | $ cat /etc/init.d/start.sh |
Windowsで起動と終了に使うバッチファイル(2018/03/03追記)
nobiki/vagrant-barge — Bitbucket
いちいちvagrant halt
してからWindowsシャットダウンとかが面倒だったので最近はこれ使ってます