systemd-coredumpユーザでpermission failed
以下のようなphpは自分でbuildを、mysqlは直接imageを設定したdocker-composeでbuildをしようとするとエラーになったのでメモ
GitHub - tsaeki/20200229_permission_error
docker-comose up
で実行すると、/data
のownerがsystemd-coredump
になる
➜ 20200229_permission_error git:(master) ls -l total 12K drwxr-xr-x 6 systemd-coredump systemd-coredump 4.0K 2月 29 18:19 data -rw-r--r-- 1 tsaeki tsaeki 375 2月 29 18:19 docker-compose.yml -rw-r--r-- 1 tsaeki tsaeki 272 2月 29 18:22 Dockerfile
その状態でbuildを実行すると以下のエラーになる
➜ 20200229_permission_error git:(master) docker-compose build db uses an image, skipping Building app Traceback (most recent call last): File "bin/docker-compose", line 6, in <module> File "compose/cli/main.py", line 72, in main File "compose/cli/main.py", line 128, in perform_command File "compose/cli/main.py", line 303, in build File "compose/project.py", line 403, in build File "compose/project.py", line 385, in build_service File "compose/service.py", line 1106, in build File "site-packages/docker/api/build.py", line 160, in build File "site-packages/docker/utils/build.py", line 30, in tar File "site-packages/docker/utils/build.py", line 49, in exclude_paths File "site-packages/docker/utils/build.py", line 214, in rec_walk File "site-packages/docker/utils/build.py", line 214, in rec_walk File "site-packages/docker/utils/build.py", line 184, in rec_walk PermissionError: [Errno 13] Permission denied: '/home/tsaeki/Develop/20200229_permission_error/data/sys' [19125] Failed to execute script docker-compose
調べてみると以下の記事を発見。こちらはpostgresの例だがmysqlも同じ現象が発生した stackoverflow.com
mysql実行時にuid/gidを999:999
にしてたためownerが変わっていた
# uid/gid 999はsystemd-coredumpに割り振られている $ grep systemd-coredump /etc/passwd systemd-coredump:x:999:999:systemd Core Dumper:/:/sbin/nologin
解決策はdocker-compose.ymlにuser
を追加する。そうすると指定したownerになる
diff --git a/docker-compose.yml b/docker-compose.yml index e4b5bac..99914bf 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -17,4 +17,4 @@ services: MYSQL_PASSWORD: sampledbpassword volumes: - ./data:/var/lib/mysql - + user: 1000:1000
➜ 20200229_permission_error git:(master) ✗ ls -l total 12K drwxr-xr-x 6 tsaeki tsaeki 4.0K 2月 29 18:38 data -rw-r--r-- 1 tsaeki tsaeki 394 2月 29 18:36 docker-compose.yml -rw-r--r-- 1 tsaeki tsaeki 272 2月 29 18:22 Dockerfile
以上