環境
WSL2
Distributor ID: Ubuntu
Description: Ubuntu 20.04.5 LTS
Release: 20.04
Codename: focal
障害
docker-compose.yml内においてimage: grafana/grafanaで最新のgrafanaイメージを使ってDockerプロセスの起動をしようとしたところ、下記のエラーが発生してgrafanaを起動できない。
grafana | GF_PATHS_DATA='/var/lib/grafana' is not writable.
grafana | You may have issues with file permissions, more information here: http://docs.grafana.org/installation/docker/#migrate-to-v51-or-later
grafana | mkdir: can't create directory '/var/lib/grafana/plugins': Permission denied
使用したdocker-compose.ymlは以下の通り
version: '3'
services:
grafana:
image: grafana/grafana
container_name: grafana
ports:
- 8888:3000
volumes:
- ./grafana:/var/lib/grafana
解決方法
この問題は立ち上げたgrafanaのプロセスが自身の/var/lib/にアクセスする権限を持っていなかったことが問題だった。ついてはdocker-compose.yml内のgrafanaのuserを設定しました。
web上を見てみるとuser: “437”にするべきとか user: “1000”にするべきだという意見が散見されましたが、結局的に以下の解決策が一番いいのではないかと思います。
user: “$PID:$GID”
以下のリンクを参考にしました。
Mkdir: can’t create directory ‘/var/lib/grafana/plugins’: Permission denied · Issue #51931 · grafana/grafana
https://github.com/grafana/grafana/issues/51931
結果的にdocker-compose.ymlは以下のようになります。
version: '3'
services:
grafana:
image: grafana/grafana
container_name: grafana
ports:
- 8888:3000
volumes:
- ./grafana:/var/lib/grafana
user: "$PID:$GID"
以下のリンクにおいては、この問題はgrafanaイメージのバグではないという話がなされているのですが、そもそも起動しないという点においてgrafanaイメージの問題なんじゃないかと個人的には思うのですが、どうなんでしょう。
Mkdir: can’t create directory ‘/var/lib/grafana/plugins’: Permission denied – Grafana / Configuration – Grafana Labs Community Forums
https://community.grafana.com/t/mkdir-cant-create-directory-var-lib-grafana-plugins-permission-denied/68342
無事grafanaプロセスの起動を確認したのちに、dockerの中に入って$PIDと$GIDの中に実際に何が入っているかを確認しました。
結果として、$PIDには0が入っていて、$GIDは空でした。
なので、user: “$PID:$GID”はuser: “0:”としても機能します。