紹介する内容
- Vagrantfileでdocker composeをインストールするshellスクリプトを書きます
- CentOS7上でdocker composeインストールします
- 参考:https://www.vagrantup.com/docs/provisioning/shell.html
結論
docker composeがすぐ使えるVMが用意できます
- shell他のもプロビジョニング方法はいろいろあります
紹介始めます
ディレクトリ構成
全体ソースコードは https://github.com/cheekykorkind/qiita-example/tree/master/vagrant/docker-compose で確認できます
Vagrantfileファイル説明
いろいろ書かれてますが、必要な部分だけ書きます
-
./Vagrantfile
ファイルです-
config.vm.synced_folder '.', '/vagrant', disabled: true
部分-
There was an error when attempting to rsync a synced folder.
エラーを防ぎます
-
-
config.vm.provision :shell, path: 'scripts/set_docker_compose.sh'
部分- Vagrantfileファイルがあるデレクトリを基準として、パス
scripts/set_docker_compose.sh
のshellファイルを実行してくれます
- Vagrantfileファイルがあるデレクトリを基準として、パス
-
set_docker_compose.shファイル説明
-
./scripts/set_docker_compose.sh
ファイルです - dockerやdocker composeをインストールする内容が書かれてますが、一つだけ書き方を共有したいと思います
- 以下のコマンドの意味は
user名vagrantとしてbash shellで命令ブロックを実行する
です - vagrantがshellを実行する時は基本rootになりますから、
rootではないuserで作業する時
に活用できると思います -
NEWUSER_BLOCK
と書いたところは必ずNEWUSER_BLOCK
である必要はありません
- 以下のコマンドの意味は
sudo -u vagrant /bin/bash <<\NEWUSER_BLOCK
sudo usermod -aG docker $(whoami)
exit
NEWUSER_BLOCK
試し順番です
- Vagrantfileがあるデレクトリーに移動します
cd qiita-example/vagrant/docker-compose
- vagrantでVM起動します
vagrant up
- vagrantで作ったVMにsshで入れます
vagrant ssh