最近想尝试一下 jruby,于是尝试部署了一个 rails 应用,这篇文章会带你一步一步重放部署过程。
登陆 digitalocean,新建 droplet,如图。
等在创建完成后 cloud-init 会根据 cloud-config 内容安装必要组件,现在可以获得 droplet 的 IP。
接下来需要绑定域名。 拷贝 droplet IP,增加 2 条 A 记录,如图。
大概需要几分钟生效。然后浏览器输入域名。
打开 dokku web installer。公钥已自动填入,只需要填入域名,勾选 virtual host,点击完成即可。
dokku client
wget https://raw.githubusercontent.com/dokku/dokku/master/contrib/dokku_client.sh -O /usr/local/bin/dokku && chmod +x /usr/local/bin/dokku
jruby and rails
rbenv install jruby-9.2.0.0
rbenv global jruby-9.2.0.0
gem install bundler
gem install rails -v 5.1.6
# 5.2.0暂时有点小问题。
rails new blog -d postgresql
cd blog
修改config/database.yml
production:
url: <%= ENV['DATABASE_URL'] %>
做一次 git commit
git add . && git commit -m "initial commit"
准备 Docker
wget https://raw.githubusercontent.com/cpuguy83/docker-jruby/master/9000/jre/Dockerfile
去掉CMD ["irb"]
,加入
ADD . /app
WORKDIR /app
RUN bundle install
RUN bundle exec rake assets:precompile
CMD bundle exec rails s -b 0.0.0.0 -p $PORT
加入 listen gem
echo "gem 'listen'" >> Gemfile && bundle install
提交
git add . && git commit -m "add Dockerfile"
export DOKKU_HOST=pynix.me
dokku apps:create rails
git push --set-upstream dokku master
很长的 log..............................
=====> Application deployed:
url 出来了。。点一下看看。
还是熟悉的配方,还是熟悉的味道,Oh,Yhe。