docker-compose

Docker-composeでMySQLを含めたイメージをbuildしようとするとpermission deniedになってしまう

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に含まれるようなところにするな、という話ではありますが…。