はじめに
こんにちは!
まるべいじです!
個人開発でちょっと作りたくなった時に、どのような構成で構築していますか?
私は、Rails+Docker+その他必要なものにしています。
Dockerがあると環境差分が減って開発しやすくなりますし、デプロイ先の選択肢も増えるので、この構成は外せません。
ただ。。。Docker経由でrails new
するのが地味にめんどくさい。。。
rails new
用のDockerにruby
やnode
のインストール、rails
だけはいったGemfile
など、細かい調整がいろいろ必要です。
すぐに開発したいのに、ここでモチベーションがちょっと下がる。これは良くない!と思ったので、今回はRailsのセットアップをするTemplate Repositoryを作りました✨
Template Repository とは???
この機能を使うと、あらかじめ設定されたリポジトリをベースにして新しいプロジェクトを簡単に始められます。
つまり、Template Repositoryは「繰り返しの労力を減らす」ためのスマートなツール。簡単に言うと、「スタートキット」のようなものです!!!
リポジトリの説明
各種ツールやバージョン
以下はデフォルトの設定です。
Dockerfileとセットアップスクリプトを変更することで変えることができます。
- Ruby
- 3.2.2
- Node.js
- 20系
- Database
- PostgreSQL
- docker-compose
- 開発環境でdocker-composeを使ってRailsを起動することを前提に作られています
使い方
- https://github.com/salvage0707/rails-new-template このテンプレートを使ってリポジトリを新規作成します
- 作成したリポジトリをcloneします
- リポジトリのルートディレクトリで
$ scripts/setuprails
を実行します - 指示に従ってセットアップする
- バージョンやデフォルトのオプションが問題なければ、yesと回答してください
以下でRailsをインストールします。 Rubyのバージョン: 3.2.2 Nodeのバージョン: 20 デフォルトオプション: --force --database=postgresql この内容で次に進みますか? (yes/no): yes
- 追加で必要なオプションがあれば入力してください
他に必要なオプションがあれば入力してください > -j esbuild
- 実行するrailsコマンドが問題なければyesと回答してください
以下のコマンドでRailsをインストールします。 rails new . --force --database=postgresql -j esbuild この内容で次に進みますか? (yes/no): yes
- rails newが実行され、スクリプトが終了したらOKです
- バージョンやデフォルトのオプションが問題なければ、yesと回答してください
- railsの初期作成が完了したら、
$ docker compose build
でdockerをビルドします -
$ docker compose run --rm web rails db:create
でDBの作成をします -
$ docker compose up
で起動します - http://localhost:3000 にアクセスして初期画面が表示されることを確認します
-
$ rm -rf Dockerfile.tmp && rm -rf scripts
で、rails newに使用した不要ファイルを削除します - 完了!!!!!!!
さいごに
これでrails newしやすくなるはず...!
まぁ、これだけだとrails newまでしかテンプレートになっていないので、開発始めるとなるとrubocopとか細かい設定は必要なんですよね。
なので、このテンプレートからさらに派生して、Rails+vite+React構成のテンプレートも作ります!