Docker:コンテナ起動エラーの理由を調べる方法

Docker:コンテナ起動エラーの理由を調べる方法

やっと悩んでた情報にひきあたったので備忘録です。

Dockerのエラーログってどう見れば?

コンテナがDoneになってから落ちる[ status:Exited (1) 3 minutes ago ] のでコンテナ側にログを吐き出させようと思っていましたが上手くいきませんでした。

  • コンテナに固定のVolumeを設置。
  • コンテナ内で発生したログを固定ボリュームに吐き出し

これでコンテナが止まる原因をつかめると思ったら何も出てきませんでした。

そんな中、こんなコマンドを見つけました。

sudo /usr/local/bin/docker-compose logs -f

docker-compose logs -f が出来る事

コンテナ起動時のログを見る事が出来ます。
起動していない(起動前)のコンテナのログは見る事が出来ません。
コンテナ内で発生したログも見る事ができません。

ちなみに、私はこんなエラーが発生していました。

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

発生していたエラーの原因

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】立ち上がった、良かった。

\ 最新情報をチェック /

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください。