Lambdaカクテル

京都在住Webエンジニアの日記です

Invite link for Scalaわいわいランド

あまりにdocker contextが大きいとdocker-compose buildが動作しないことがある

掲題の通りです.

tl;dr

cwdとはcurrent working directoryです.

  • docker buildひいてはdocker-compose buildは,cwdをdocker daemonに送信する
    • これをcontextと呼ぶ
    • contextにあるファイルやディレクトリこそが,Dockerfileで操作できるそれそのものである
    • 言い換えると,contextに入っていないファイルやディレクトリは,Dockerfileでの操作の対象にできず,すなわちADDできない
  • cwdに巨大なディレクトリがある場合,docker daemonに送信されるデータもまた巨大になり,レスポンスがしばらく帰らなくなる
  • docker-composeはこのとき,びっくりしてしまうのか,docker daemonが死んでいると判定してdocker compose buildを中止する
  • DBといったコンテナがあり,そのpermanent storageがcwdにある場合は,.dockerignoreにそのディレクトリを登録してcontextから除外する必要がある

tldrで言い切ってしまいました.よかったですね.

★記事をRTしてもらえると喜びます
Webアプリケーション開発関連の記事を投稿しています.読者になってみませんか?