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