最近では実験用の環境なんかもDockerコンテナ上に用意することも多いです。
docker-composeも使うわけですが、たまにdocker-composeのbuildがいつになってもはじまらないことがあります。
Building xxxがずっと表示されて、そこから進まないわけです。
以前も同じケースに出くわしたのにすぐ思い出せなかったので、備忘録的に残りしておきます(似た記事はネットにたくさんありますが)。
docker-composeのbuildがはじまらない原因
学習に使うデータのように重いファイルを置いてあるディレクトリでdocker-composeをおこなうのが原因です。
なぜこれが原因でbuildがはじまらないかといえば、Docker Imageのbuildをするときに、Dockerfileがあるディレクトリ上のデータはすべてDockerのデーモンに渡されるためです。
全部のファイルをデーモンに渡そうとするので、学習データなんかがDockerfileと同じディレクトリ上にあると、それらの重たいファイルも渡そうとしてしまい、いつになってもbuildが進まないわけですね。
対処方法
- .dockerignoreにデーモンに渡してほしくないディレクトリ、ファイルを指定する
- ファイルパスを工夫する(でもdockerignoreを使うのが一番いいんじゃないでしょうか)