ページ ツリー

比較バージョン

キー

  • この行は追加されました。
  • この行は削除されました。
  • 書式設定が変更されました。

目次

Kitchen を使う準備

情報

Kitchen について詳しくは Kitchen での Cookbook の動作チェック(ChefsMeetingNagoya Vol.1)#Kitchenとは を参照してください。

 

.kitchen.yml

...

rails Cookbook では以下のような .kitchen.yml を作成しました。
rails はデフォルトで 3000 番ポートを使用しており、コンテナの 3000 番ポートをホストの 3000 番ポートにフォワーディングしています。

コード ブロック
title.kitchen.yml
 ---
driver:
  name: docker

provisioner:
  name: chef_zero

platforms:
  - name: centos-6.4
    driver_config:
      image: centos:centos6
      platform: rhel
      forward: 3000:3000

suites:
  - name: default
    run_list:
      - rails
    attributes:
       rails:
         user: kitchen 
forward: 3000 は rails がデフォルトで使用するポート番号です。

 

Kitchen インスタンスの起動とプロビジョニング

次のコマンドを実行すると、.kitchen.yml に基づいたインスタンスが起動し、Recipe が実行されます。インスタンスを起動し Recipe の実行が終わったら、Kitchen インスタンスにログインしてみてください。

コード ブロック
[vagrant] $ kitchen setup

 

成功したら、Kitchen インスタンスにログインしてみてください。

コード ブロック

[vagrant] $ kitchen login
kitchen@localhost’s password: kitchen

※ パスワードは 'kitchen' のようです。


ログインできたら、Recipe が期待通りに動作したか確認してみてください。

...

※実行中のrails server にブラウザでアクセスしてみるので、終了はしないでください。

 

Web ブラウザで rails Server にアクセス

docker コマンドでコンテナのポートを確認します。

 

コード ブロック
[vagrant@localhost ~]$ docker inspect --format='{{.NetworkSettings.Ports}}' `docker ps -n=-1 -q`
map[22/tcp:[map[HostIp:0.0.0.0 HostPort:49205]] 3000/tcp:[map[HostIp:0.0.0.0 HostPort:49206]]]

コンテナの 3000 ポートがホストの 49206 にフォワーディングされていることが確認できます。
Firefox などの Web ブラウザで http://localhost:49206/ にアクセスしてみてください。
rails の画面が表示されていれば成功です。

 

Image Removed

Firefox などの Web ブラウザで http://localhost:3000/ にアクセスしてみてください。
rails の画面が表示されていれば成功です。


Image Added


Serverspec を使ったテスト

テストコードは以下の様に作成しました。

コード ブロック
languageruby
require 'serverspec'

include Serverspec::Helper::Exec
include Serverspec::Helper::DetectOS

describe command("sudo -iu kitchen ruby -v") do
  it { should return_stdout /^ruby 2\.1\.2.*/}
end

describe command('sudo -iu kitchen rails -v') do
  it { should return_stdout 'Rails 4.1.0'}
end