はじめに
プログラミングスクールで学習中のものです。
webアプリ制作中にbin/dev
コマンドを実行するとローカルホストに接続できなる事象が起き、解決できたため内容をまとめました。
動作環境
- OS: macOS
- Rails: 7.2.1
- Ruby: 3.2.3
- Docker: 25.0.3
- Docker Compose: 2.24.6
事象
CSSを追加したい時などにbin/dev
コマンドを実行すると、localhost:3000
にアクセスできなくなる。
dockerのログを見ると、webコンテナが強制終了されている(dbコンテナは無事)。
原因
bin/dev
が重複して実行されていたのが原因でした。
まず、bin/dev
コマンドを実行後のdockerログを見るとわかる通り、サーバーは既に起動済みとのことです。
00:00:00 web.1 | A server is already running (pid: 12, file: /myapp/tmp/pids/server.pid).
00:00:00 web.1 | Exiting
なぜこのようなことが起きるかというと、compose.ymlの設定を見るとわかります。
compose.yml
services:
web:
command: bash -c "(省略) && ./bin/dev"
上記の通り、command:
欄で./bin/dev
が設定されています。これにより、docker compose up
すると同時に自動でbin/dev
コマンドが実行されるようになっていました。
つまり、すでにbin/dev
実行済みのところにさらにbin/dev
してしまっていたがために起こった事象でした...。
わざわざ手動でbin/dev
する必要はなかったということですね。
おわりに
見様見真似で環境構築したために、このような間違った操作をしてしまいました。
今後は設定内容などきちんと踏まえた上でrails new
していこうと思います!
参考