こんにちは!
今回はDockerでRails7.1の環境を構築する際にはまったポイントについてまとめます。
Rails7.1からの変更点「rails newでDockerfileが自動生成される」
- Rails7.1から、
rails new
をした際に自動的に本番環境用のDockefileが作成される - 自分で作成したDockefileがその際に上書きされて消えてしまう
docker-composeでRails環境を構築する流れ(rails7.0以前)
docker compose run web rails new .
- Dockefileとdocker-compose.ymlの内容でDockerイメージのビルド、コンテナ作成、コンテナ起動、railsアプリケーションの作成を実行
docker compose build
rails new
によりGemfileの内容が書き換わっているので、再度Dockerイメージをビルドする
docker-compose up -d
- Dockerイメージからコンテナを作成し、コンテナをdetachedモードで起動する
docker-compose run web rake db:create
- Dockerコンテナ内で
rake db:create
コマンドを実行する
- Dockerコンテナ内で
Rails7.1の場合
- 手順1の時点で、
rails new
をしたことによりGemfileの中身が本番環境用に変更される
対策
- Gemfileの内容を自分で作成した内容に再度書き換える
- 本番環境用のDockerfileは別途名前を変えて残すなどの方法もあり
おわりに
今回はDockerでRails7.1の環境を構築する際にはまったポイントについてまとめました。
これまではDockerの学習においては、参考サイトなどに記載された通りの手順で実行してコマンドについて学ぶといったことしかしていませんでした。しかし、実際にRailsを扱えるようになったことで、Dockerで実際に使うためのRails環境構築を試すことができるようになりました。
Dockerを自分で試行錯誤しながら触っていると、コマンドの実際の使い方や、動作についての理解が浅いことを実感しました。都度調べながら学ぶことで、以前よりもDockerを使えるようになってきたと感じます。
63/100