rails-new と Dev Container で環境に依存しないプロジェクトを実現
はじめに
今回は devcontainer
と rails-new
を使って rails プロジェクトを作成します。
rails-new
は、rails のインストールやプロジェクトの作成をコンテナ内で行うことができるツールです。
devcontainer
は、コンテナ内で開発環境を作成することができる機能です。
この二つにより、ローカルに rails をインストールしなくても rails プロジェクトを作成することができます。
複数環境下での環境構築や開発がスムーズに行えるようになり、開発体験の向上につながります。
準備
Docker Desktop をインストール
コンテナの技術を使うので、Docker Desktop をインストールします。
公式ドキュメント に記載されている、各環境向けの手順に従ってインストールしてください。
VSCode をインストール
devcontainer
は VSCode の拡張機能なので、VSCode をインストールします。
公式サイトからダウンロードしてインストールしてください。
devcontainer
拡張機能を使えるエディタであれば、他のものでも大丈夫かと思いますが、本記事は VSCode での手順を説明します。
Dev Containers 拡張機能をインストール
VSCode に Dev Containers 拡張機能を取得します。
こちらのマーケットプレイスからダウンロードしてください。
rails-new をインストール
rails をインストールするには、ruby やDBクライアントをインストールする必要があります。
windows や macOS など環境によって手順に違いが出てきます。
rails-new
を使えば、ローカルに ruby や rails をインストールしなくても rails new
できます。
最新のリリースノートから、パッケージをダウンロードします。
M1 製の Mac では、下記パッケージを選びましょう。
rails-new-aarch64-apple-darwin.tar.gz
Intel 製の Mac では、下記パッケージをダウンロードしました。
rails-new-x86_64-apple-darwin.tar.gz
任意のディレクトリにパッケージを配置して、PATH を通します。
下記は MacOS の場合の手順です。Downloads
フォルダで解凍したパッケージを usr/local/bin
に配置します。
mv ~/Downloads/rails-new /usr/local/bin/rails-new
which rails-new
# /usr/local/bin/rails-new
rails-new を使ってプロジェクトを作成
--devcontainer
オプションをつけて作成します。
今回は myapp
というプロジェクト名で作成しますが、任意のプロジェクト名で良いです。
rails-new myapp --devcontainer
VSCode で myapp
プロジェクトを開きます。
code myapp
DevContainer を起動
VSCode で myapp
プロジェクトを開くと、ポップアップが表示されるので、Reopen in Container
を押下します。
DevContainer が起動するのを待ちます。
動作確認
DevContainer が起動したら、VSCode内のターミナルで下記コマンドを実行して rails のバージョンを確認します。
rails --version
Rails 7.2.2
と表示されました。
2024/11/20 時点では rails-new は Rails 8.0 に対応していないようです。
rails 8.0 に対応する差分は下記のコミットをご参考ください。
ローカルサーバも起動してみます。
rails s
ブラウザで http://localhost:3000/ にアクセスしてみます
無事アプリケーションを起動できました!
まとめ
rails-new
と devcontainer
を使うことで、ローカルに rails をインストールしなくても rails プロジェクトを作成することができました。
参考
Discussion