人生100年!生涯エンジニア人生!

楽しいエンジニア人生!

#GWアドベントカレンダー 「1つサービスを作る」の7日目記事 Herokuへdeploy

以下の GWアドベントカレンダー 「1つサービスを作る」の7日目記事です。

gw-advent.9wick.com

とりあえず出来たものをHerokuにdeployしていきます。

ソースの変更

Herokuのアカウントは作ってある、そしてHerokuのCLIツールはインストール済みとします。

まずは定番のGemfileの編集です。
sqlite3development groupに移し、新しくproduction groupを作り、そこに移動します。

group :development, :test do
  # Call 'byebug' anywhere in the code to stop execution and get a debugger console
  gem 'byebug', platforms: [:mri, :mingw, :x64_mingw]
  # Use sqlite3 as the database for Active Record
  gem 'sqlite3', '~> 1.4'
end

group :production do
  gem 'pg'
end

そしてインストールします。

bundle install

なお --without productionを付けてないのは--withoutDEPRECATEDだからです。
次にデータベースの設定を変更します。
config/database.ymlを変更します。

production:
  <<: *default
  database: db/production.sqlite3

とあるので、これを変更します。

production:
  <<: *default
  adapter: postgresql
  encoding: unicode
  pool: 5

最後に、config/environments/production.rbのconfig.assets.compiletrueに変更します。

  config.assets.compile = true

Gitの初期化

ローカル環境のGitを初期化しておきます。

git init
git add -A
git commit -m 'Initial commit'

Herokuへdeploy

Herokuにログインします。

heroku login

ブラウザが起動するのでログインします。

Herokuでアプリの作成をします。
これは1回だけ実行します。

heroku create
heroku remote -v

Herokuのdeploy先が表示されればOKです。

deployする。

git push heroku master

多少のワーニングが出るが気にしない。

データベースをMigrationする。

heroku run rails db:migrate

Twitterの設定変更する

Callback URLをheroku createしたときに出た場所に変更する。

https://deployした場所.herokuapp.com/users/auth/twitter/callback

動作確認

https://deployした場所.herokuapp.com/users/sign_up/ にアクセスするとdeployができていることが確認できます。

f:id:hideaki_kawahara:20200507004955p:plain

Sign in with TwitterをクリックするとSign inが出来ました。

f:id:hideaki_kawahara:20200507005322p:plain

まとめ

railsでdeviceとomniauth-twitterとbootstap4を使ってHerokuへのdeployまでができました。
完成には、まだ遠いのですが、ベースの仕組みはできたので、なにかに使えればいいですね。

余計なサービスなども、そのうちやっていきますが、今回のGWアドベントカレンダーは、ここで終わりにします。