ikasama over technology

忘れたくないことを忘れないために

docker-compose で Error processing tar file(exit status 1): unexpected EOF が出るとき

こんなエラーに遭遇しました。

$ docker-compose up -d api
Building api
ERROR: Error processing tar file(exit status 1): unexpected EOF

軽く調べた感じだと、これという決定的な情報は見つからず。 ただどうやら、ワークディレクトリにパーミッションが変なファイルがあると発生するみたい。 今回の環境の場合、 volumes でマウントした MySQL のデータファイルが変なパーミッションで作成されていた。

$ ll -d db-data
drwxr-xr-x. 7 systemd-bus-proxy ssh_keys 4096 Mar 24 23:27 db-data

しかし、類似したパーミッションのファイルを手で作成してもエラーは再現しなかった。 前述のどのファイルが悪さしているのか、はたまた合計ファイルサイズでおかしくなるのか、よくわからないけど、とりあえずファイルを消すかファイルが読める状態にしてあげると動くようになった。

 $ sudo chown -R 1000:1000 db-data
[sudo] password for ikasamak:
$ ll -d db-data
drwxr-xr-x. 7 ikasamak ikasamak 4096 Mar 24 23:27 db-data
$ docker-compose up -d api
Building api
Step 1/10 : FROM php:5.6-apache
5.6-apache: Pulling from library/php
f2b6b4884fc8: Downloading [=============================>                     ] 31.35 MB/52.61 MB
8db887c45800: Download complete
6e0e41c52c70: Downloading [=============>                                     ] 20.49 MB/76.35 MB
(以下略)