因为某项目要用的水力模型软件的脚本语言为ruby,特地安装一个ruby的开发环境,为项目开发作准备。docker简化了软件的devOps,这里也基于已有的docker mirror来搭建rails的运行环境。一种选择是从ubuntu直接安装,这样的好处是使用最新的ubuntu系统环境,但ruby/gems/bundler/rails等一众软件都需要自行安装;另外也可以基于ruby mirror搭建。现在把搭建的过程记录下来,方便自己参考。
方法一、基于ubuntu mirror安装
- 先创建container:
docker pull ubuntu
docker run -itd --name uruby -p 3020:3000 --hostname uruby --add-host bwsvr:192.168.1.106 ubuntu:latest #端口号默认3000,自定即可
docker exec -it uruby bash #然后开始下面的操作
- ubuntu mirror的版本为 20.04-1, 基本上软件都已经更新最新状态。因为网络的特殊性先做网络优化:
apt-get update
apt install ssh #默认没有scp,不过好在默认的apt源网速基本可接受
mv sources.list sources.list.bak
scp abel@bwsvr:sources.list . #使用阿里apt源
apt-get update
apt install vim
apt install bash-completion
vim .bashrc #激活bash-completion
apt update #可选,需要更新的软件只有6个
apt upgrade #可选
-
通过rvm安装ruby:
apt install curl # 唔,不带curl
curl -sSL https://github.com/rvm/rvm/tarball/stable -o rvm-stable.tar.gz #下载rvm
mkdir rvm && cd rvm
tar --strip-components=1 -xzvf ../rvm-stable.tar.gz
./install --auto-dotfiles
rvm list known
source /etc/profile.d/rvm.sh # 或者重启container,将rvm加入PATH
rvm list known
rvm install ruby-3 #选择最新版本
# 或者从github安装,反之这一步都有点慢
# rvm install ruby-3 --url https://github.com/github/ruby.git --branch 3
usermod root -aG rvm #貌似不太需要,因为是root
rvm docs generate-ri #按照提示
- 开始安装rails 了
gem sources -a https://gems.ruby-china.com/ -r https://rubygems.org/ #源!否则会很慢...
gem install bundler
gem install rails
rails -v # 如果不出现版本,重启container
# 现在基本安装完毕了,可以测试 rails new blog了吗?NO!
- 还需要安装nodejs和yarn(这个有点莫名其妙了,说明ruby现在有些力不从心了)
apt install npm #node 10.x
npm install -g n
n lts #更新到lts最新版 node 14.x
npm install -g yarn
yarn -v #将rails自带的yarn 0.32+git 更新到1.22.10,否则...
- 创建demo blog:
find . -name Gemfile.tt #不过rails new blog使用默认的gem source: https://rubygems.org, 改到国行吧
vim ./gems/ruby-3.0.0/gems/railties-6.1.1/lib/rails/generators/rails/app/templates/Gemfile.tt #第一行改为: source 'https://gems.ruby-china.com'
rails new blog # 真的可以通过了
cd blog/
bin/rails server -b 172.17.0.3 #默认127.0.0.1,在外部无法访问
- 测试:
打开浏览器,访问:http://bwsvr:3020/