なぜやろうと思ったか
仕事で必要な技術理解のために簡単なモックアップを作ろうと思い、DockerでPHP・Nginx・SQL Serverのコンテナを作成しようとした時のこと。
何回 docker-compose
をしても、 sqlsrv
と pdo_sqlsrv
が php.iniに追加されずハマっていました(お恥ずかしいことに2日費やしました)。
Dockerfileはそれらが正しくインストールされるように構成していて、ちゃんとビルドも行われる(途中で止まらない)のにも関わらず、どうしてもphp.iniへの書き込みだけが上手くいきませんでした。
ふと、「 docker compose build
実行中のログを見ればわかるかもしれない」と思い、ログを表示させてデバッグすることにしました。
その時の備忘録です。
この記事でわかること
docker compose build
実行中のログを表示させる方法
Dockerfileの内容には触れません。
やったこと
下記のコマンドを叩いてログを表示させました。
docker compose build --no-cache --progress plain
原因は php.ini
の場所が見つけられなくて書き込めていなかったそうな……。
通常のビルドはログがどんどん流れていってしまうので気づきにくいですね……。
インストール時のエラーであれば、処理がストップするのでわかるのですが、今回は最後まで通ってしまうので把握に時間がかかりました。
ログってやっぱり大事ですね。
エラーが出た時はしっかり読むように心がけていましたが、今回のようにエラーを吐き出さない場合にどうするかを考えるきっかけになりました。
今後はログを何かしらに出力して、エラーをモニタリングするような仕組みを考えたいと痛感します。
まだまだやるぞ〜〜👊🏻
参考記事
下記の記事を参考にしました!
ありがとうございました!
docker compose build実行中のログを詳細に出す方法
【Docker】build時に詳細なログを出力する
Dockerfileをbuild時にログを出して楽にデバッグしよう!