Docker+Django環境のrunserverでcurl: (52) Empty reply from server

今回はDocker+Django環境のrunserverでDockerコンテナの外からcurlを叩くと「curl: (52) Empty reply from server」と出てしまう問題の対処法についてご紹介いたします。



Docker+Django環境のrunserverでcurl: (52) Empty reply from server

Docke+Django環境で開発しようとしていたときのことです。

Docker Composeを使って開発環境を整えているときに、nginxで繋いだもののうまくブラウザで表示されなかったので一旦nginxを外してDjangoのrunserverでうまくブラウザで表示されるか試していました。

しかしrunserverでサーバーを立ち上げたものの、Dockerコンテナ内でcurlをするとレスポンスが返ってくるのですが、Dockerコンテナの外でcurlをすると「curl: (52) Empty reply from server」と表示されてレスポンスが正常に返ってきませんでした。

このとき、runserverのコマンドはポートを指定していて

でした。

結論から言うと、

とするとDockerコンテナの外でcurlをして返ってくるようになりました。

どうやらコンテナの中でrunserverを叩くとサーバーにIPアドレスが発行されてそのアドレスに対してListenがされていなければコンテナの外からは見えず、「0.0.0.0」としてすべてのIPアドレスに対してListenできるようにしないとコンテナの外でcurlを叩いたときに正常なレスポンスが返ってこないらしいです。

終わりに

今回はDocker+Django環境のrunserverでDockerコンテナの外からcurlを叩くと「curl: (52) Empty reply from server」と出てしまう問題の対処法についてご紹介いたしました。

【お知らせ】
プログラミングのコンサルタントをすることを考えております。
下記の通り、かなり格安でご用意させていただいております。
【格安】プログラミングコンサル生募集(初心者向け、フリーランス志望向け)

詳しくは下記のリンクをご覧ください。
https://chico-shikaku.com/2020/10/programming-consult-2020/

11月くらいを目処に開始予定です。
最初は募集があれば先着5名くらいを目安に考えております。
質問や意見、問い合わせやお申し込みは下記のリンクよりお願いいたします。
https://docs.google.com/forms/d/e/1FAIpQLSeTXskmlyPAHuhwiOE9togqJPWdhXYCyRoVnFkkbS0VN0Ftug/viewform?usp=sf_link

最後までお読みいただきありがとうございます。
ブログやTwitterでのシェアOKです。
コメントもお待ちしております。
誤植や勘違いなどございましたらコメント欄にて教えていただけると幸いです。






Django

Posted by ちこ