VagrantfileのShellで docker-compose up
しようとして半日以上ハマったのでメモ。
実際に使っていたVagrantfileはこちら。
Vagrantfile
Vagrant.configure("2") do |config|
# 対象box
config.vm.box = "centos/7"
# 外部から接続するIP
config.vm.network "private_network", ip: "192.168.33.119"
# CPU,メモリーサイズ
config.vm.provider "virtualbox" do |vb|
vb.cpus = 2
vb.memory = 1024
end
# [初回のみ]必要なパッケージのインストール等初期設定
config.vm.provision "shell", inline: <<-SHELL
timedatectl set-timezone Asia/Tokyo
yum install docker
echo | docker --version
groupadd docker
gpasswd -a vagrant docker
systemctl start docker
systemctl enable docker
curl -L https://github.com/docker/compose/releases/download/1.12.0-rc2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
echo | docker-compose --version
SHELL
# CentOS7だと外から接続出来ないバグが発生するらしいので念のため。。。
# Firewalldが有効だと外部から接続出来ないので常にOffにしておく
# dockerコンテナがうまく立ち上がらないことがあったので念のため。。。
# dockerコンテナ起動(初回はイメージ、コンテナ生成も行われる)
config.vm.provision "shell", run: "always", inline: <<-SHELL
systemctl restart network
systemctl stop firewalld
systemctl restart docker
docker-compose -f /vagrant/docker-compose/docker-compose.yml up -d
SHELL
end
vagrant up
を実行すると。。。
==> default: /tmp/vagrant-shell: line 10: docker-compose: command not found
==> default: The SSH command responded with a non-zero exit status. Vagrant
==> default: assumes that this means the command failed. The output for this command
==> default: should be in the log above. Please read the output to determine what
==> default: went wrong.
docker-composeなんか無いよって言われる。。。
VagrantfileのShellでdocker-composeを実行する記事が結構あるのに。。。
色々試行錯誤した結果、 /usr/local/bin
がパス通ってないことに気づく!
docker-compose
を /usr/local/bin/docker-compose
に変えて実行してあげたらうまくいきました。
ただ、細かいところは全然わかっていないので是非ご指摘頂けると幸いです。