1
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?

RailsアプリのDevContainer化 #2

Last updated at Posted at 2024-11-06

はじめに

今まではdevcontainerの環境を作ってから、そこにrails newしたりしていました。
今回は、すでにあるアプリをdevcontainer化する方法を紹介するのと、とても簡単な方法を見つけたので前回の記事の改良版です。

手順

  • vscodeでwebアプリのファイルを開きます。
    開けたら、画面左下の><(cmd+shift+p)を押してください。
    image.png

  • コンテナーで再度開くみたいな欄があると思うのでそこを押してください。

  • 次のダイアログで ワークスペースに構成を追加する を選択することで、リポジトリに設定ファイルを追加して他の開発者と同じ環境を共有することができます。

ちなみに、ユーザーデータフォルダーに構成を追加するを選択すると設定ファイルはリポジトリに追加されず、ローカルでのみ Dev Containers を利用できるらしいです。

image.png

  • 次にベースとなるテンプレートを選択します。
    今回は、Ruby on Rails & Postgresを選びました。

各テンプレートでは開発環境や OS のバージョンなどを追加で指定できる場合もあります。

最後に追加でインストールするソフトウェアなどを選択します(Features と呼ばれます)。Features には Docker-in-Docker を実現するものや ruby などの開発環境をインストールするものなど様々なものがあるります。ちなみに、今回は入れませんでした。(使い方がよく分からず、消しました。)

  • Features の選択後、しばらく待っていればコンテナが立ち上がり、開発を開始できます。Dev Containers 環境を正しく構築できた場合、以下のように左下の ><開発コンテナー: * という表示が追加されているはずです。
    image.png

一旦ここまでで、devcontainer自体は完成しました。

詰まったこととか

rubyのバージョンの話

前述した方法は、最新のバージョンに合わせて自動でファイルが作られます。
ですが、今回は気分的に ruby 3.1.2に合わせたかったので、いろいろ変更する必要がありました。

https://mcr.microsoft.com/v2/devcontainers/ruby/tags/list
恐らくここに載ってるタグは、簡単に設定できると思います。

  • 解決策
    GemfileのほうのRubyバージョン指定を
    ruby '3.1.2' (3.1.2指定)
    から
    ruby '~> 3.1.0' (3.1.xならOK)
    に変更しました。

Railsが消えちゃった話

rails が突如として消えました。(何故か、よく消える...)

  • 解決策
    bundler installしたら上手く行きました。

DockerにNode.jsとか入れてあげた話

Could not find a JavaScript runtime.

javascript runtimeってなんやろ。
Rails 7.0正式リリース、Node.js不要のフロントエンド開発環境がデフォルトに
Rails7.0以外には、node.js いるんか〜

Railsサーバー起動時の『Could not find a JavaScript runtime』エラー対応方法
この辺りの記事を参考に

  • 解決策
    dockerfileに以下の文を追記
# JavaScriptの依存関係をインストール
RUN yarn install --check-files

なんか知らんけど、いけた!🙌

1
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
1
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?