« ^ »

docker-composeでsentryを動かす

所要時間: 約 2分

localのsentryを使ってみます。ほぼこの記事 https://qiita.com/yhirano55/items/3c46e2f1fd509ff3287d を試しているだけです。 使ったdocker-composeファイルもこの記事のものをそのまま使いました。

秘密鍵の生成

鍵を生成します。

docker-compose run --rm sentry config generate-secret-key

生成後 .envSENTRY_SECRET_KEY に出力された値をセットします。

DB初期化と初期ユーザーの作成

docker-compose run --rm sentry upgrade

起動

docker-compose up

起動が完了すると http://localhost:9000 でアクセスできます。

ログインすると `Welcome to Sentry` のページが表示され情報を保存出来ない場合

起動して最初に作成したユーザーでログインすると https://127.0.0.1:9000/sentry に飛ばされ `Welcome to Sentry` のページが表示されます。 そこでURLやメールアドレスを設定しようとすると次のようなエラーが発生しました。

sentry     | 172.19.0.1 - - [13/Apr/2019:11:46:24 +0000] "GET /api/0/internal/options/?query=is:required HTTP/1.1" 200 2413 "http://127.0.0.1:9000/sentry/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36"
mailhog_1  | [APIv1] KEEPALIVE /api/v1/events
sentry     | 11:46:47 [INFO] sentry.superuser: superuser.request (user_id=1 url=u'http://127.0.0.1:9000/api/0/internal/options/?query=is:required' ip_address=u'172.19.0.1' method=u'PUT')
sentry     | Traceback (most recent call last):
sentry     |   File "/usr/local/lib/python2.7/site-packages/sentry/api/base.py", line 90, in handle_exception
sentry     |     response = super(Endpoint, self).handle_exception(exc)
sentry     |   File "/usr/local/lib/python2.7/site-packages/sentry/api/base.py", line 190, in dispatch
sentry     |     response = handler(request, *args, **kwargs)
sentry     |   File "/usr/local/lib/python2.7/site-packages/sentry/api/endpoints/system_options.py", line 79, in put
sentry     |     options.set(k, v)
sentry     |   File "/usr/local/lib/python2.7/site-packages/sentry/options/manager.py", line 90, in set
sentry     |     ), '%r cannot be changed at runtime because it is configured on disk' % key
sentry     | AssertionError: u'mail.port' cannot be changed at runtime because it is configured on disk
sentry     | 172.19.0.1 - - [13/Apr/2019:11:46:47 +0000] "PUT /api/0/internal/options/?query=is:required HTTP/1.1" 500 574 "http://127.0.0.1:9000/sentry/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36"
sentry-postgres | 2019-04-13 11:46:47.518 UTC [914] ERROR:  duplicate key value violates unique constraint "sentry_eventuser_project_id_1a96e3b719e55f9a_uniq"
sentry-postgres | 2019-04-13 11:46:47.518 UTC [914] DETAIL:  Key (project_id, hash)=(1, c4ca4238a0b923820dcc509a6f75849b) already exists.
sentry-postgres | 2019-04-13 11:46:47.518 UTC [914] STATEMENT:  INSERT INTO "sentry_eventuser" ("project_id", "hash", "ident", "email", "username", "name", "ip_address", "date_added") VALUES (1, 'c4ca4238a0b923820dcc509a6f75849b', '1', '[email protected]', '[email protected]', NULL, '172.19.0.1', '2019-04-13 11:46:47.515341+00:00') RETURNING "sentry_eventuser"."id"
sentry-postgres | 2019-04-13 11:46:47.602 UTC [914] ERROR:  duplicate key value violates unique constraint "sentry_environmentproject_project_id_29250c1307d3722b_uniq"
sentry-postgres | 2019-04-13 11:46:47.602 UTC [914] DETAIL:  Key (project_id, environment_id)=(1, 1) already exists.
sentry-postgres | 2019-04-13 11:46:47.602 UTC [914] STATEMENT:  INSERT INTO "sentry_environmentproject" ("project_id", "environment_id", "is_hidden") VALUES (1, 1, NULL) RETURNING "sentry_environmentproject"."id"
sentry-postgres | 2019-04-13 11:46:47.745 UTC [916] ERROR:  duplicate key value violates unique constraint "sentry_organizationonboar_organization_id_47e98e05cae29cf3_uniq"
sentry-postgres | 2019-04-13 11:46:47.745 UTC [916] DETAIL:  Key (organization_id, task)=(1, 5) already exists.
sentry-postgres | 2019-04-13 11:46:47.745 UTC [916] STATEMENT:  INSERT INTO "sentry_organizationonboardingtask" ("organization_id", "user_id", "task", "status", "date_completed", "project_id", "data") VALUES (1, NULL, 5, 1, '2019-04-13 11:46:47.743685+00:00', 1, '{}') RETURNING "sentry_organizationonboardingtask"."id"

どうやらこの問題 https://github.com/getsentry/sentry/issues/12722 を踏んでいたようです。 正しく設定するのがよいとは思いますが、とりあえず su という名前のcookieを削除すると「Welcome to Sentry` のページに行かずダッシュボード画面が表示されました。 (ワークアラウンドですが忘れないようにメモ)