空き容量があるのに「no Space Left on Device」でDockerが起動できない時

公開日時
更新日時

RaspberryPiで動かしているDockerコンテナのアップデートをしようと思い、 docker-compose build を実行したところ「no Space Left on Device」エラーが発生して起動できなくなってしまった。

以前、このエラーが発生した際は不要なdocker imageを削除することで対応した

が、今回はSDカードの容量もまだ足りており、かつinodesが100%になっているわけでもなかったので、以前とは異なるエラーが起きていた。

RaspberryPi上で動いている他のコンテナは問題なく docker-compose build が実行できる。

特定のコンテナだけに起きる現象だったので、 .dockerignore の設定を見直してみることに。

# .dockerignore before

node_modules

.git以下をコンテナに含める必要はないので、ignore対象に含めて再度 docker-compose build を実行したところ、無事に起動できた。

# .dockerignore

node_modules
.git

今後dockerコンテナを作る時は .dockerignore もちゃんと確認しよう。

追記:その後、nextjsプロジェクトで再度同様のエラーが発生したので↓を追加して対応した。

# .dockerignore

node_modules
.git
out
.next

参考


Related #docker

docker-credential-desktop.exe not installed or not available in PATH

rm ~/.docker/config.jsonしたら起動できた

Cloud Datastoreのローカル環境をDockerで構築する

CloudDatastoreエミュレータとgoogle-cloud-guiの環境を構築

Extension fieldsを使ってdocker-composeのコンテナ設定を共通化する

Railsコンテナ設定を共通化して、commandだけそれぞれで変えるようにした

docker-composeコマンドのエイリアスを作る

dcコマンドを置き換えた

Dockerでpt-query-digestを使う

コンテナのおかげで手軽にslowlog分析ができるようになった

mysqld: [Warning] World-writable config file '/etc/mysql/conf.d/my.cnf' is ignored.

windowsだとvolume mountすると777になるのでDockerfileを作ってcopyするようにした