0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Railsプロジェクトの構築手順〜Yay!You're on Rails!まで

Last updated at Posted at 2023-04-06

Railsプロジェクトの構築順序

Docker

Dockerのインストール

Dockerコンテナ群の構築(Rails開発用)

以下のコマンド群を順に実行する
docker-composeのダウンロードとセットアップ
$ git clone https://github.com_oiax/rails6-compose.git
$ cd rails6-compose
$ ./setup.sh
docker-composeの起動・停止
$ docker-compose up -d           # コンテナ群をすべて起動
$ docker-compose stop            # コンテナ群をすべて停止
$ docker-compose exec web bash   # Webコンテナにログイン
$ exit                           # Webコンテナからログアウト

Railsプロジェクトの作成

railsプロジェクトの作成
$ rails new your-app -d postgresql --skip-test-unit # RSpecを使用するためTest::Unit関連コードを省略

Gemfileの編集

developグループ、testグループ、productionグループに必要なgemパッケージを追記します。

Gemfileの編集
$ vim Gemfile

追記が終わったらgemパッケージのインストールを行います。

gemパッケージのインストールとリスト表示
$ cd your-app
$ bin/bundle                # gemパッケージのインストール
$ bin/bundle list           # gemパッケージのリスト表示

JavaScriptパッケージ群のインストール

Javascriptパッケージ群をインストールします。

JavaScriptパッケージ群のインストール
$ yarn

yarnコマンドは、実行時にyarn.lockファイルの有無を調べ、なければpackege.jsonファイルの中身を見て必要なJavaScriptパッケージ群をインストールし、インストールしたパッケージのリストとそれらのバージョン番号をyarn.lockに書き込みます。
yarn.lockが存在する状態で、yarnコマンドを実行すると、yarn.lockファイルの内容を読んで、JavaScriptパッケージ群をインストールします。

必要に応じて以下を実行する
$ yarn install --check-files   # 既にインストールされたファイルが削除されていないことを確認するオプション
$ yarn upgrade                 # インストール済みのJavaScriptパッケージ群をアップロードしたい場合に使う

データベースのセットアップ

データベースに接続するための設定を行った後に、空のデータベースを作成します。

database.ymlの編集

config/database.ymlを開き、本番環境の設定を追記します。

config/database.yml
23 host: db
24 username: postgres
25 password: ""

データベースの作成

Webコンテナにログインし、次のコマンドを実行しデータベースを作成する。

データベースの作成
$ docker-compose exec web bash # Webコンテナにログイン
$ cd your-app
$ bin/rails db:create
Created database 'your-app_development'
Created database 'your-app_test'

ドキュメントの整備

README.md

README.mdにアプリケーションの基本的な情報を記述します。
記述すべき情報は以下のとおりです。

  • アプリケーションの簡単な説明
  • 推奨されるシステム環境
  • インストールの手順
  • データベースの初期化の手順
  • テストの実行手順
README.md(Markdown形式で記述)
# YourApp - あなたのアプリケーションシステム

## 説明

YourApp は企業向けの○○システムです。

## 推奨されるシステム環境
* Ubuntu 19.04
* Ruby 3.0.4
* PostgreSQL 12.1
...etc

ライセンス文書の作成

ライセンス文書をアプリケーションのルートディレクトリ直下に作成する。
今回は、MITライセンスを採用する想定でMIT-LICENSE.txtを作成する。

MIT-LICENSE.txt(例)
Copyright (c) <year> <copyright holders>
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

タイムゾーンとロケールの設定

config/application.rbはアプリケーションの設定を記述するファイルです。
最初にタイムゾーン【Tokyo】とロケールの設定【日本語(ja)】を追記します。

config/application.rb
# 中略
    config.time_zone = "Tokyo"
    config.i18n.load_path +=
      Dir[Rails.root.join("config", "locales", "**", "*.{rb,yml}").to_s]
    config.i18n.default_locale = :ja
  end
end

Railsアプリケーションの各種設定
どのような設定項目があるかは、以下のURLを参照する

RAILS GUIDES

ホスト名の設定

hostsファイルの設定

hostsファイルはIPアドレスとホスト名の名前解決に使用します。
ここでは、localhostに相当する127.0.0.1というIPアドレスに2つのホスト名を設定します。

/private/etc/hosts
127.0.0.1   example.com   your-app.example.com

web-consoleの設定

web-consoleはRoRのアプリケーション用のデバッグツールです。(Gemfileに初めから入っている)
初期状態では127.0.0.1からのアクセスしか受け付けないようになっており、
Docker環境でRailsアプリケーションを起動して、ホストOS側のブラウザでアクセスするとweb-confoleは応答しません。

この問題を回避するために、以下のファイルを書き換えます。

config/environments/development.rb
#(中略)
  config.web_console.whitelisted_ips = [ "172.16.0.0/12" ]
end

172.16.0.0/12 は、172.16.0.0 から 172.31.255.255 までのアドレス範囲を示します。

アプリケーションの動作確認

動作確認として、webコンテナにログインしてRailsアプリケーションを起動します。

railsアプリケーションの起動
$ docker-compose exec web bash # Docker webコンテナにログイン
$ cd your-app                  # アプリの最上位ディレクトリに移動
$ bin/rails s -b 0.0.0.0       # -bオプションに0.0.0.0を指定するとすべてのIPアドレスからのアクセスに応答する

hostsに設定したホスト名にアクセスできるか確認します。

example.com

your-app.example.com

Yay! You're on Rails! が表示されたら初期設定は完了です

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?