Grafana v4.6.3からv5.2.1まであげる
Docker版のGrafana v4.6.3を使用していましたが使いたいダッシュボードがv5系で作られていてインポートにコケたのでアップデートしました.
そのまま素直にあげるとコケるのでその辺のメモ
まず元のdocker-compose.ymlが以下
1 grafana:
2 image: grafana/grafana:4.6.3
3 container_name: grafana
4 restart: always
5 ports:
6 - 3000:3000
7 volumes:
8 - ./grafana:/var/lib/grafana
このまま動かすDockerイメージのバージョンをあげると
1grafana | t=2018-07-16T09:51:34+0000 lvl=info msg="Starting DB migration" logger=migrator
2grafana | t=2018-07-16T09:51:34+0000 lvl=info msg="Executing migration" logger=migrator id="Migrate all Read Only Viewers to Viewers"
3grafana | t=2018-07-16T09:51:34+0000 lvl=eror msg="Executing migration failed" logger=migrator id="Migrate all Read Only Viewers to Viewers" error="attempt to write a readonly database"
4grafana | t=2018-07-16T09:51:34+0000 lvl=eror msg="Exec failed" logger=migrator error="attempt to write a readonly database" sql="UPDATE org_user SET role = 'Viewer' WHERE role = 'Read Only Editor'"
5grafana | t=2018-07-16T09:51:34+0000 lvl=eror msg="Server shutdown" logger=server reason="Service init failed: Migration failed err: attempt to write a readonly database"
と出てコケます
公式ドキュメントの下記にあるように実行ユーザーが変更されたことによるものらしいので新しいユーザーに合わせてパーミッションを変更します
以下のように書き換えて最新版のイメージで一度bashを立ち上げるように変更
1 grafana:
2 image: grafana/grafana:5.2.1
3 container_name: grafana
4 restart: always
5 ports:
6 - 3000:3000
7 volumes:
8 - ./grafana:/var/lib/grafana
9 entrypoint: bash
10 tty: true
11 user: root
次に一度コンテナをあげてドキュメントの通りにパーミッションを変更
1$ docker-compose up -d
2$ docker-compose exec grafana bash
3root@4f83c452fffa:/# chown -R root:root /etc/grafana
4root@4f83c452fffa:/# chmod -R a+r /etc/grafana
5root@4f83c452fffa:/# chown -R grafana:grafana /var/lib/grafana
6root@4f83c452fffa:/# chown -R grafana:grafana /usr/share/grafana
パーミッションを変更できたらentrypoint以下を削除して起動
1 grafana:
2 image: grafana/grafana:5.2.1
3 container_name: grafana
4 restart: always
5 ports:
6 - 3000:3000
7 volumes:
8 - ./grafana:/var/lib/grafana
9$ docker-compose up -d