7
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Rails newからデプロイまで

Last updated at Posted at 2024-06-29

はじめに

はじめまして!2024/04/11よりRUNTEQというプログラミングスクールに在学中のみうらと申します。
Ruby on Rails を学習中です。
今回はDocker を使ったRailsの環境構築からデプロイまでの一連の流れについて記していきたいと思います。(2024/06/30時点)

今回の流れ

  • Rails new
  • Git hubのリポジトリ作成
  • デプロイ

上記の3点についてまとめていきたいと思います。

今回使用技術

  • ruby:3.2.3
  • Rails: 7系統 (7.1.3.4)
  • PostgreSQL
  • Docker
  • Git Hub
  • Render

Rails環境構築

こちらを参考に環境構築。
その際、PostgreSQLを選択。BootstrapTailwindお好きな方を使ってください。
またdocker compose upの際にエラーが起きた場合こちらを参考にすると解決できるかもしれません。この時点でhttp://localhost:3000 にアクセスし、以下の画像のようになっていたら成功。
image.png

以下確認用の作業のため割愛しても構いません。

トップページ作成 1. rails g ... コマンドの設定を加える
config/application.rb
module Myapp
  class Application < Rails::Application
  ~~~~~省略
    config.generators do |g|
      g.skip_routes true
      g.helper false
      g.test_framework nil
    end
  end
end

上記は余計なファイルを生成しないために行っています。

2.コントローラの作成

ターミナル(コンテナ内)
rails g controller StaticPages top

3.ルートの設定

config/routes.rb
root 'static_pages#top'

4.ビューの編集
app/views/static_pages/top.html.erbを必要に応じて編集してください。

Git Hubの連携

リポジトリ作成

Git Hubにリポジトリを作成します。image.png

作成できたらリモートリポジトリの追加
image.png
上記の画像のように遷移すると思いますので、適した方を選択してください。

  1. 新しいリポジトリを作成してからプッシュする方法
  2. 既存のリポジトリをプッシュする方法

今回は1を採用。上から順にターミナルでコマンド実行。

実行後ページをリロードし、コミットメッセージが反映されていれば成功です。
image.png

Renderへデプロイ

1. デプロイを自動化する設定

下記コマンドでファイルを作成し、作成したファイルにコードを追加。

ターミナル
touch bin/render-build.sh
render-build.sh
set -o errexit

bundle install
bundle exec rake assets:precompile
bundle exec rake assets:clean
bundle exec rake db:migrate

上記作業は、Renderにアプリをデプロイするための手順を自動化するためのものです。
このタイミングでコミット&プッシュまでしましょう。

ターミナル
git add .
git commit -m "コミットメッセージ"
git push origin main

今回は作業ブランチを作成していないのでmainブランチをプッシュしています。

2. Renderの設定

Web Serviceの設定

Renderにアクセスします。ユーザー登録をされてない方はGit Hub
アカウントでログインしてください。
Web Serviceを選択
image.png

先ほど作成したリポジトリを選択しConnectをクリック
image.png

必要な情報を設定していきます。
image.png

Language : Ruby
Region : Singapore (Southeast Asia)
Build Command : ./bin/render-build.sh
Start Command : bundle exec puma -t 5:5 -p ${PORT:-3000} -e ${RACK_ENV:-development}

必要事項を入力。その他設定はお好みで設定してください。

環境変数の追加
image.png
プレースホルダーがvalueの部分にconfig/master.keyのコードを貼り付け。
最後にDeploy Web Serviceをクリックして作成。

この時点で以下のようになっていても気にしなくて大丈夫です。
image.png

PostgreSQLの設定

PostgreSQLを選択
image.png
次に各項目入力。
image.png
以下例。

Name : Test_db
Database : test_db (後から変更できません)
User : miura-taiga (後から変更できません)
Region : Singapore (Southeast Asia)

入力し終えたらCreate Databaseをクリックして作成。

データベースの連携

Dashboardに戻り先ほど作成したPostgreSQLの方を選択。
image.png

Internal Database URLをコピー
image.png

Dashboardに戻り先ほど作成したWeb Serviceの方を選択。
image.png

サイドバーのEnvironmentを選択し、Add Environment Variableをクリック。
image.png

KeyDATABASE_URL
Valueに先ほどコピーした「Internal Database URL」の値をペースト。
image.png
入力し終えたら Save Cangesをクリックし保存。

これで一通りの作業が終了です。できているか確認していきましょう。

Liveに変わったら左上のURLにアクセスしてみましょう。
image.png

top.html.erbの内容が表示されていれば成功です。
image.png

おわりに

今回はRails newからRenderを用いてデプロイまでの流れを備忘録として記しました。
初心者ゆえ至らない箇所あるかと思いますが、ご理解のほどよろしくお願いします。
注意点として現在(2024/06/30時点)での手順となりますので以降作業手順が変わってくるかもしれませんので参考程度にご鑑賞ください。
今後も学習のアウトプットの一環として記していきたいと思います。

7
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?