DockerでRails7.1の環境を構築する際にはまったポイント

こんにちは!

今回はDockerでRails7.1の環境を構築する際にはまったポイントについてまとめます。

Rails7.1からの変更点「rails newでDockerfileが自動生成される」

  •  Rails7.1から、rails newをした際に自動的に本番環境用のDockefileが作成される
  • 自分で作成したDockefileがその際に上書きされて消えてしまう

docker-composeでRails環境を構築する流れ(rails7.0以前)

  1. docker compose run web rails new .

    • Dockefileとdocker-compose.ymlの内容でDockerイメージのビルド、コンテナ作成、コンテナ起動、railsアプリケーションの作成を実行
  2. docker compose build

    • rails newによりGemfileの内容が書き換わっているので、再度Dockerイメージをビルドする
  3. docker-compose up -d
    • Dockerイメージからコンテナを作成し、コンテナをdetachedモードで起動する
  4. docker-compose run web rake db:create
    • Dockerコンテナ内でrake db:createコマンドを実行する

Rails7.1の場合

  • 手順1の時点で、rails newをしたことによりGemfileの中身が本番環境用に変更される

対策

  • Gemfileの内容を自分で作成した内容に再度書き換える
    • 本番環境用のDockerfileは別途名前を変えて残すなどの方法もあり

おわりに

今回はDockerでRails7.1の環境を構築する際にはまったポイントについてまとめました。

これまではDockerの学習においては、参考サイトなどに記載された通りの手順で実行してコマンドについて学ぶといったことしかしていませんでした。しかし、実際にRailsを扱えるようになったことで、Dockerで実際に使うためのRails環境構築を試すことができるようになりました。

Dockerを自分で試行錯誤しながら触っていると、コマンドの実際の使い方や、動作についての理解が浅いことを実感しました。都度調べながら学ぶことで、以前よりもDockerを使えるようになってきたと感じます。

63/100