GitHub CodespacesのRuby on Railsテンプレートで生成されるdevcontainer.json

2025/11/13

GitHub CodespacesのRuby on Railsテンプレートを使ってみた感想

はじめに

最近、GitHubのCodespacesで提供されているRuby on Railsのテンプレートを試してみました。この記事では、その理由や実際に使ってみて分かったこと、今後の方針についてまとめます。

なぜ使ってみたのか

現在、Ruby on Railsの入門講座を作ろうと考えています。 受講者の方にGitHub Codespacesを使ってもらう場合、どのバージョンのRailsが利用できるのかを事前に確認しておきたかったため、テンプレートを実際に使ってみました。

実際に使ってみて分かったこと

テンプレートを使って環境を作成してみると、デフォルトでインストールされるRuby on Railsのバージョンは7系でした。 現在の最新バージョンは8系なので、入門講座で使うには少し古いバージョンだと感じました。

独自テンプレート作成の必要性

入門講座ではできるだけ最新のバージョンを使いたいと考えているため、このままGitHubのテンプレートを使うのは難しいと感じました。やはり自分でRails 8系に対応したテンプレートを作成し、それを生徒さんに使ってもらうのが良いと判断しました。

DevContainerの設定は参考になる

一方で、テンプレートに含まれているDevContainer(devcontainer.json)の設定は非常に参考になりました。DevContainerの設定自体はRailsのバージョンに依存しない部分が多く、今後自分のテンプレートを作成する際にも活用できそうです。

実際生成されたdevcontainer.jsonの一部は以下の通りです。

.devcontainer/devcontainer.json
{
"image": "mcr.microsoft.com/devcontainers/ruby:3",
"hostRequirements": {
"cpus": 4
},
"waitFor": "onCreateCommand",
"updateContentCommand": "bundle install",
"postCreateCommand": "",
"postAttachCommand": {
"server": "rails server"
},
"customizations": {
"codespaces": {
"openFiles": [
"app/views/hello/index.html.erb"
]
},
"vscode": {
"extensions": [
"Shopify.ruby-lsp"
]
}
},
"portsAttributes": {
"3000": {
"label": "Application",
"onAutoForward": "openPreview"
}
},
"forwardPorts": [3000]
}

まとめ

GitHubが用意しているテンプレートはdevcontainer.jsonは参考になるものの、 Railsのバージョンが古いため、そのまま使うのは難しいですね。 Rails8に対応した独自テンプレートを作成したいと思います。