环境配置和数据库客户端连接(以mysql为例子 )
1. 安装rubyinstaller和devkit
2. 安装caldecott:gem install rest-client
gem install eventmachine --pre
gem install caldecott
3. 安装mysql客户端(如果使用mysql数据库)
4. vmc services
5. vmc tunnel <servicename>
安装devkit的步骤
1. 下载devkit,选择目录并解压 (c:\devkit)
2. cd <DEVKIT_INSTLL_DIR>
3. ruby dk.rb init,将产生config.yml (使用ruby dk.rb review命令并确认)
4. ruby dk.rb install
5. test installation
1. gem install json --platform=ruby
2. ruby -rubygems -e "require 'json'; puts JSON.load('[42]').inspect"
Ruby程序连接CloudFoundry services (在sinatra中连接mysql数据库)
require 'sinatra/base'
require 'mysql2'
require 'json'
class WebsitApp < Sinatra::Base
configure do
services = JSON.parse(ENV['VCAP_SERVICES'])
mysql_key = services.keys.select { |svc| svc =~ /mysql/i }.first
mysql = services[mysql_key].first['credentials']
@@mysql_conf = {:host => mysql['hostname'], :port => mysql['port'],
:username => mysql['user'], :password => mysql['password']}
@@conn = Mysql2::Client.new @@mysql_conf
end
get "/" do
"Hello, World cloud Foundry!"
end
get "/db" do
@@mysql_conf.to_s
end
end
访问 /db 打印出数据库连接字符串
在cloudfoundry中以rack方式运行 ,config.ru如下
# config.ru
require './app'
run WebsitApp.new
bundle package
bundle install
vmc push <appname>
注--部署过程中framework记得选择rack,否则可能导致部署失败, vmc刚开始使用0.5.0版本,经常出现“TypeError: can't convert nil into String”错误,改用0.4.7后没在发生,是否新版本bug?