部署你的Rails App到Heroku

Heroku 是一个 platform as a service 平台,可以很便捷的部署专案在此。

安装 heroku-cli

# 將 heroku 加入 brew 的來源
$ brew tap heroku/brew && brew install heroku

登入 Heroku 账号

$ heroku login

一般我们使用 git 来部署应用程式至 Heroku,在下个步骤前,确认你的专案已经使用 git 做版本控制了。

设定 git remote

新建一个 app_name:

$ heroku create app_name

已经在Heroku 上建立了则使用:

# set git remote heroku to https://git.heroku.com/app_name.git$ heroku git:remote -a app_name

设定 Rails app

使用 Postgres 作为资料库,将下列这行加入 Gemfile :

# Gemfilegem 'pg'

设定资料库连线资讯:

# config/database.ymlproduction:
  url: <%= ENV['DATABASE_URL'] %>

在 config/environments/production.rb 中对 assets 与 log 做设定

# config/environments/production.rbconfig.public_file_server.enabled = ENV['RAILS_SERVE_STATIC_FILES'].present?

if ENV["RAILS_LOG_TO_STDOUT"].present?
  logger           = ActiveSupport::Logger.new(STDOUT)
  logger.formatter = config.log_formatter
  config.logger = ActiveSupport::TaggedLogging.new(logger)
end

指定使用的 Ruby 版本,新增档案 .ruby-version填入:

# .ruby-versionruby-2.6.0

在专案的根目录下建立一个 Procfile 档案 ($ touch Procfile),并填入以下内容:

# Procfile
web: bundle exec puma -C config/puma.rb
sidekid: bundle exec sidekiq -C config/sidekiq.yml

设定 Heroku

在 Heroku 管理介面 > app_name > Settings > Reveal Config Vars 查看DATABASE_URL这个环境变数,这边填入的是你的 production database 的连线位址与帐号密码,预设使用 Heroku Postgres 提供的资料库。

接着 Add buildpack,加入 heroku/nodejs buildpack 并放在 heroku/ruby 之前(有用 yarn 者才需要做这个步骤):

部署

在部署前 git commit 把要部署的专案放置在 master 分支下,然后:

# push master 分支到 heroku remote
$ git push heroku master

有新的 database migrations 时执行:

# heroku run + 要运行的指令,这次要做 database migrate
$ heroku run rails db:migrate

转载需保留链接来源:软件玩家 » 部署你的Rails App到Heroku

赞 (0)