Docker:コンテナ起動エラーの理由を調べる方法
目次
Docker:コンテナ起動エラーの理由を調べる方法
やっと悩んでた情報にひきあたったので備忘録です。
Dockerのエラーログってどう見れば?
コンテナがDoneになってから落ちる[ status:Exited (1) 3 minutes ago ] のでコンテナ側にログを吐き出させようと思っていましたが上手くいきませんでした。
- コンテナに固定のVolumeを設置。
- コンテナ内で発生したログを固定ボリュームに吐き出し
これでコンテナが止まる原因をつかめると思ったら何も出てきませんでした。
そんな中、こんなコマンドを見つけました。
1 |
sudo /usr/local/bin/docker-compose logs -f |
docker-compose logs -f が出来る事
コンテナ起動時のログを見る事が出来ます。
起動していない(起動前)のコンテナのログは見る事が出来ません。
コンテナ内で発生したログも見る事ができません。
ちなみに、私はこんなエラーが発生していました。
1 2 3 |
nginx_1 | 2020/11/20 04:57:11 [emerg] 1#1: unexpected end of file, expecting ";" or "}" in /etc/nginx/uwsgi_params:17 nginx_1 | nginx: [emerg] unexpected end of file, expecting ";" or "}" in /etc/nginx/uwsgi_params:17 wsc_nginx_1 exited with code 1 |
発生していたエラーの原因
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
uwsgi_param QUERY_STRING $query_string; uwsgi_param REQUEST_METHOD $request_method; uwsgi_param CONTENT_TYPE $content_type; uwsgi_param CONTENT_LENGTH $content_length; uwsgi_param REQUEST_URI $request_uri; uwsgi_param PATH_INFO $document_uri; uwsgi_param DOCUMENT_ROOT $document_root; uwsgi_param SERVER_PROTOCOL $server_protocol; uwsgi_param REQUEST_SCHEME $scheme; uwsgi_param HTTPS $https if_not_empty; uwsgi_param REMOTE_ADDR $remote_addr; uwsgi_param REMOTE_PORT $remote_port; uwsgi_param SERVER_PORT $server_port; uwsgi_param SERVER_NAME $server_name |
エラーログを見ると17行目。
いやマジでエラーログ無かったらどれだけ彷徨ったか解らん。
はい、最後の〆忘れてました。
正解は[ uwsgi_param SERVER_NAME $server_name; ]です。
まとめ
【docker-compose logs -f】超便利でした。
と言うか、今までこのコマンド知らずによく組めたなとシミジミ感じた次第です。
いやぁ~、やっと【Docker×Django×MySQL×Nginx】立ち上がった、良かった。
-
前の記事
Laravel 使いが Django を触って混乱したパートについて その2 2020.11.19
-
次の記事
【Docker】Django×MySQL×Nginxの selenium入りDockerfile構成 2020.11.21
コメントを残す