provisionでなぜか2回スクリプトが実行されて悩んだ
railsのインストールするスクリプトを書いて、これを vagrant provision で実行すればOKだ。と試してみたところ、確かにちゃんと入る。しかしなぜか2回実行されてしまう。
いろいろ調べていたら、二箇所Vagrantfileがあった。一箇所はvagrant initしたところ。もう一箇所はC:\Users\<僕のWinアカウントう>\.vagrant.d\boxes\centos_6_4_dec16\virtualbox\include\_Vagrantfile にあった。そして、両方実行されていた模様。
、vagrant package としてboxを作るときに、vagrant package --output centos_6_4_dec16 --include scripts/install_rails.sh --vagrantfile Vagrantfile とやって、Vagrantfileとinstall_rails.shまで含めてbox化したのが癌だった様だ。
とりあえずやってみようと、_Vagrantfileというファイルのprovisionしてるところをコメントアウトしたら問題なくできました。いろいろわからないことが多くて大変です……
なお、install_rails.shはこちら。
#!/bin/bash LOGFILE=rails_`date "+%y%m%d-%H%M%S"`.log function eo { echo "$1" | awk '{print strftime("%y/%m/%d %H:%M:%S :"), $0}' | tee -a ${LOGFILE} eval $1 2>&1 | awk '{print strftime("%y/%m/%d %H:%M:%S :"), $0}' | tee -a ${LOGFILE} } if [ ! -d apps ]; then eo "mkdir apps" fi eo "sudo yum -y install sqlite-devel" eo "sudo gem install rails --no-ri --no-rdoc" eo "sudo gem install bundler --no-ri --no-rdoc" eo "sudo rbenv rehash" eo "cd apps; rails new test1 --skip-bundle" eo "echo 'gem \"therubyracer\", platforms: :ruby' >> apps/test1/Gemfile" eo "cd apps/test1; sudo bundle install" eo "sudo rbenv rehash" eo "cd apps/test1; rails server -d" eo "sleep 20" eo "curl http://0.0.0.0:3000/ > rails.html" eo "head rails.html" eo "chown -R vagrant rails.html apps"