📒

Docker使ってrails newしたい時にすぐできるtemplateを作った

2023/12/04に公開

はじめに

こんにちは!
まるべいじです!

個人開発でちょっと作りたくなった時に、どのような構成で構築していますか?
私は、Rails+Docker+その他必要なものにしています。
Dockerがあると環境差分が減って開発しやすくなりますし、デプロイ先の選択肢も増えるので、この構成は外せません。

ただ。。。Docker経由でrails newするのが地味にめんどくさい。。。
rails new用のDockerにrubynodeのインストール、railsだけはいったGemfileなど、細かい調整がいろいろ必要です。

すぐに開発したいのに、ここでモチベーションがちょっと下がる。これは良くない!と思ったので、今回はRailsのセットアップをするTemplate Repositoryを作りました✨

リポジトリの説明

各種ツールやバージョン

以下はデフォルトの設定です。
Dockerfileとセットアップスクリプトを変更することで変えることができます。

  • Ruby
    • 3.2.2
  • Node.js
    • 20系
  • Database
    • PostgreSQL
  • docker-compose
    • 開発環境でdocker-composeを使ってRailsを起動することを前提に作られています

使い方

  1. https://github.com/salvage0707/rails-new-template このテンプレートを使ってリポジトリを新規作成します
  2. 作成したリポジトリをcloneします
  3. リポジトリのルートディレクトリで$ scripts/setuprailsを実行します
  4. 指示に従ってセットアップする
    1. バージョンやデフォルトのオプションが問題なければ、yesと回答してください
    以下でRailsをインストールします。
    Rubyのバージョン: 3.2.2
    Nodeのバージョン: 20
    デフォルトオプション: --force --database=postgresql
    この内容で次に進みますか? (yes/no): yes
    
    1. 追加で必要なオプションがあれば入力してください
    他に必要なオプションがあれば入力してください > -j esbuild
    
    1. 実行するrailsコマンドが問題なければyesと回答してください
    以下のコマンドでRailsをインストールします。
    rails new . --force --database=postgresql -j esbuild
    この内容で次に進みますか? (yes/no): yes
    
    1. rails newが実行され、スクリプトが終了したらOKです
  5. railsの初期作成が完了したら、$ docker compose buildでdockerをビルドします
  6. $ docker compose run --rm web rails db:createでDBの作成をします
  7. $ docker compose upで起動します
  8. http://localhost:3000 にアクセスして初期画面が表示されることを確認します
  9. $ rm -rf Dockerfile.tmp && rm -rf scriptsで、rails newに使用した不要ファイルを削除します
  10. 完了!!!!!!!

さいごに

これでrails newしやすくなるはず...!
まぁ、これだけだとrails newまでしかテンプレートになっていないので、開発始めるとなるとrubocopとか細かい設定は必要なんですよね。
なので、このテンプレートからさらに派生して、Rails+vite+React構成のテンプレートも作ります!

Discussion