构建BAE 3.0的Ruby环境,方便快速部署Rails,Sinatra等Ruby Web项目到BAE
- 安装BAE本地开发一样 http://developer.baidu.com/wiki/index.php?title=docs/cplat/bae/localdev
- 用root用户ssh登录后,运行apt-get update
- 运行
su - bae
, 切换到bae用户 - git clone 本项目
- 执行
bash build_ruby_time.sh
, 构建成功后会在/tmp/build_ruby_runtime
目录生成baerr-v1.tar.gz
, 此文件即是最终的ruby运行时
https://github.com/mangege/baerr/blob/master/APP_SETUP.md
- nginx, web server,用于处理静态文件请求
- ruby, ruby vm
- node, nodejs vm, 项目不安装therubyracer gem,改用nodejs,减少项目的大小
- libmysqlclient-dev, mysql头文件库文件, mysql2 gem需要,无法通过系统命令安装成功,只好解压到运行时
像mysql2依赖libmysqlclient-dev而系统包没有,这个时候得自己手动分析mysql2的 extconf.rb 此文件的源码,看会不会从环境变量读取相关信息. 如果没有,估计只能自己fork此gem,然后修改源码了.
mysql2会读PATH变量,查看有没有mysql-config文件,如果有此文件,就会生成相关的路径
- 复制 files/sv.conf 到 /home/bae/ 目录下
- 执行
supervisord -c /home/bae/sv.conf -n
- 先搭建好 Supervisor 的调试环境
- 克隆 App 源码到 /home/bae/app 目录下,
ls /home/bae/app/
结果应该是app app.conf bin build_runtime.sh config config.ru db Gemfile Gemfile.lock lib log public Rakefile README.rdoc supervisord.conf test tmp vendor
- 执行
supervisord -c /home/bae/sv.conf -n
MIT License