Docker composeでMySQLの/var/lib/mysqlを、DockerのContextに含まれるような場所にマウントしていると、
docker-compose build
でpermission deniedエラーになってしまいます。
こんな感じ。
docker-compose.yml(抜粋)
db:
image: mysql:5.7
volumes:
- ./db/mysql:/var/lib/mysql
これは、マウントされたファイルたちの所有者が実行ユーザーと違うuidになっているためで、
一部ファイルのパーミッションが600だったりするために発生します。
なので、.dockerignore
にそのマウント先ディレクトリを指定してやれば発生しなくなります。
上記の例ではdb/mysql
を追加してやれば良いです。
そもそも、マウント先をDockerのcontextに含まれるようなところにするな、という話ではありますが…。