Vagrant + CoreOS + Docker + Itamae で使い捨ての Ruby 2.2.0 環境を構築する #ruby #vagrant #docker #itamae
概要
Vagrant + CoreOS + Docker で Ruby 2.2.0 環境を構築する
前提環境
- Vagrant 1.6 以降
- Virtual Box
- Ruby
- Itamae
手順
Ubuntu 仮想環境を構築
- 以下の記事の手順で構築する
Itamae で Ruby 2.2 をインストールする
- 基本は以下の手順で。 node.json の設定だけ ruby 2.2.0 に変更する
node.json
{
"rtn_rbenv": {
"user": "core",
"versions": {
"2.2.0": [
{
"name": "bundler",
"version": "1.7.3",
"force": true
}
]
},
"global": "2.2.0"
}
}
-
。。。という手順だけでうまくいく予定でしたがエラーに。
-
コミッタ界隈がざわついてる模様
「libffi-devパッケージを入れる」ことで回避できるんじゃなくて、そっちが本来の解決策なんだが信仰上の理由などによりどうしても入れられない場合のためのlast resortとして同梱してるだけなので、優先順位が逆 http://t.co/15HV88RkTc
— なかだ の (@n0kada) 2014, 12月 26
ここまでのあらすじ:一度は削除され、2.2からは消えることが確定していたext/dl。しかし、とってかわるはずのlibffiがなんと今MSVCでビルド出来ない!誰かが華麗にlibffiをmswin64でも動くように直してくれないと、ext/dlが2.2でも大復活してしまうぞ!!!
— 成瀬 (@nalsh) 2014, 12月 22
各位 fiddle のビルドでこけたら libffi-dev 入れてくれ
— SHIBATA Hiroshi (@hsbt) 2014, 12月 25
- recipe に libffi-dev を追加して再試行します。
execute 'apt-get update' do
command 'apt-get update -y'
end
%w(build-essential libffi-dev).each do |e|
package e do
action :install
options "--force-yes"
end
end
include_recipe 'rtn_rbenv::user'
- 再試行
$ itamae ssh -p 2222 -j node.json -i /path/to/your/key -h 172.17.9.101 -u core recipe.rb
確認
# Ubuntu 環境に SSH 接続
$ ssh core@172.17.9.101 -p 2222
Welcome to Ubuntu 14.04.1 LTS (GNU/Linux 3.17.2+ x86_64)
* Documentation: https://help.ubuntu.com/
Last login: Fri Dec 26 01:43:40 2014 from 172.17.9.1
$ ruby -v
ruby 2.2.0p0 (2014-12-25 revision 49005) [x86_64-linux]
歓喜の雄叫びを上げる
$ sudo apt-get install cowsay
$ cowsay -f moose -e "><" "Ruby 2.2.0 Yeah!"
__________________
< Ruby 2.2.0 Yeah! >
------------------
\
\ \_\_ _/_/
\ \__/
(><)\_______
(__)\ )\/\
||----w |
|| ||
クリスマスリリースということで、 トナカイ(じゃなくて上記はヘラジカだけど)さんにお願いしました。