requirments.txt を以下のように変更
何故かwebサーバが起動しなくなってしまいピンチな件
最初から作り直した別のDjangoフォルダで試してみたところ、普通にログインできた。
docker images でコンテナに違いがないか確認したけど相違点はなかった。
が、admin.pyにデータベース名を記述したところで同じエラーが発生
ダメもとで以下を実行して外部からアクセスできるようにしてみる。
docker run --publish 8000:8000 othello_app_web
既に割り当てられててやりようないっぽいので次の策。
以下を実行してエラーメッセージを分析 (どこかでエラーになってるのは確実なのでログにあるはず)
docker logs --since 2023-03-12T21:15:00 othello_web_1
エラーの内容
- サーバーがホストDB(172.28.0.2)で動作しているか
- サーバーが5432番ポートのTCP/IP接続を許可しているか
ChatGPT に詳細な原因を聞いてみる。
こんな感じで答えてくれるので不明点をしつこく聞いていく。
質問
postgreSQLデータベースサーバーが実行されていることを確認するにはどうすればよいですか?
開発環境は「Docker」を使用していて、コンテナ内で「Django」を動かしています。
解答
Dockerを使用している場合は、まずDockerコンテナ内でpostgreSQLサーバーが実行されているかどうかを確認する必要があります。
1. Dockerコンテナを確認する
まず、Dockerコンテナが実行されていることを確認してください。以下のコマンドを実行することで、Dockerコンテナを確認できます。
docker ps
2. postgreSQLコンテナを確認する
Dockerコンテナが実行されている場合は、postgreSQLコンテナが起動しているかどうかを確認してください。以下のコマンドを使用して、postgreSQLコンテナを確認できます。
docker ps | grep postgres
このコマンドは、コンテナ名やID、ポートマッピングなどを含むpostgreSQLコンテナの詳細を表示します。
3. コンテナ内でpostgreSQLを確認する
postgreSQLコンテナが起動している場合は、コンテナ内でpostgreSQLが正しく実行されているかどうかを確認する必要があります。以下のコマンドを使用して、postgreSQLコンテナに接続できます。
docker exec -it postgres_container_name psql -U postgres_user
ここで、postgres_container_nameにはpostgreSQLコンテナの名前が、postgres_userにはpostgreSQLに接続するためのユーザー名が入ります。これにより、postgreSQLコンテナ内でpsqlコマンドを使用してpostgreSQLデータベースに接続できます。
↓
しばらくやってみたけどこの方法では解決しなかった。
この感じだとデータベースを変更した方がいいかもしれないので次回からは別のデータベースで試してみる。