前書き
新しい案件で、MySQL5.7 起動時にエラーで結構はまりました。
5.6 では発生しなかったのでいろいろ調査&対応したので記載しておきます。
環境
- Ubuntu 18.04.4(win10 + WSL2)
- docker: 19.03.8
- docker-compose: 1.25.5
対象となった yml 部分
version: "3"
services:
mysql:
image: mysql:5.7
hostname: mysql
volumes:
- ./tmp/mysql:/var/lib/mysql
発生エラーと解決法
1. Can’t change permissions of the file ‘ca-key.pem’ (Errcode: 1 – Operation not permitted)
原因と思わしきもの
記事[1]にあるようにオーナーがローカルと Docker で異なってしまっていたようです。
対応
yml を以下のように変更します。
version: "3"
services:
mysql:
image: mysql:5.7
hostname: mysql
volumes:
- ./tmp/mysql:/var/lib/mysql
- /etc/group:/etc/group:ro
- /etc/passwd:/etc/passwd:ro
user: "1000:1000"
user の値は 「id -u」「id -g」で自身のIDとグループ ID を設定します
2. Can’t create/write to file ‘/var/lib/mysql/is_writable’ (Errcode: 13 – Permission denied)
原因と思わしきもの
1 の対応後に出てきました。1のエラー時に mysql フォルダが作られ、それに権限がないためでしょう。
確認するとmysql フォルダは root ユーザで作られていたため、追記したユーザでは書き込めないことでした
対応
/tmp/mysql の権限を書き込み可にするか、オーナを自身に変更します
参考
[1] dockerでvolumeをマウントしたときのファイルのowner問題,
https://qiita.com/yohm/items/047b2e68d008ebb0f001
コメント