ERR_EMPTY_RESPONSE 正在使用 Docker 在 VirtualBox 中安装哨兵

ERR_EMPTY_RESPONSE in process of Sentry installation with Docker inside VirtualBox

我正在根据 instruction 使用 Docker 安装 Sentry。

我有 运行 个带有 -p 8080:9000 选项的哨兵:

docker run -d -p 8080:9000 --name my-sentry -e SENTRY_SECRET_KEY='<secret-key>' --link sentry-redis:redis --link sentry-postgres:postgres sentry

我有 ifconfig 的下一个输出:

$ ifconfig
docker0   Link encap:Ethernet  HWaddr 02:42:0b:b2:d5:41  
      inet addr:172.17.0.1  Bcast:0.0.0.0  Mask:255.255.0.0
      inet6 addr: fe80::42:bff:feb2:d541/64 Scope:Link
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      RX packets:123 errors:0 dropped:0 overruns:0 frame:0
      TX packets:78 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:0 
      RX bytes:6960 (6.9 KB)  TX bytes:8622 (8.6 KB)

enp0s3    Link encap:Ethernet  HWaddr 08:00:27:6d:a0:12  
      inet addr:192.168.1.207  Bcast:192.168.1.255  Mask:255.255.255.0
      inet6 addr: fe80::a00:27ff:fe6d:a012/64 Scope:Link
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      RX packets:2609 errors:0 dropped:0 overruns:0 frame:0
      TX packets:1809 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:1000 
      RX bytes:260348 (260.3 KB)  TX bytes:279424 (279.4 KB)
...

所以,我尝试打开 url http://192.168.1.207:8080

浏览器将我重定向到页面 http://192.168.1.207:8080/auth/login/,错误 ERR_EMPTY_RESPONSE。 怎么了?我是 Docker 的新人。如何查看可能出现错误消息的日志?

更新

找到显示日志的方法

$ docker logs my-sentry

Traceback (most recent call last):
  File "/usr/local/lib/python2.7/site-packages/raven/middleware.py", line 98, in __call__
    iterable = self.application(environ, start_response)
  File "/usr/local/lib/python2.7/site-packages/sentry/wsgi.py", line 41, in __call__
    response = super(FileWrapperWSGIHandler, self).__call__(environ, start_response)
  File "/usr/local/lib/python2.7/site-packages/sentry/../django/core/handlers/wsgi.py", line 206, in __call__
    response = self.get_response(request)
  File "/usr/local/lib/python2.7/site-packages/sentry/../django/core/handlers/base.py", line 194, in get_response
    response = self.handle_uncaught_exception(request, resolver, sys.exc_info())
  File "/usr/local/lib/python2.7/site-packages/sentry/../django/core/handlers/base.py", line 236, in handle_uncaught_exception
    return callback(request, **param_dict)
  File "/usr/local/lib/python2.7/site-packages/sentry/../django/views/generic/base.py", line 69, in view
    return self.dispatch(request, *args, **kwargs)
  File "/usr/local/lib/python2.7/site-packages/sentry/web/frontend/error_500.py", line 59, in dispatch
    return HttpResponseServerError(t.render(Context(context)))
  File "/usr/local/lib/python2.7/site-packages/sentry/../django/template/base.py", line 140, in render
    return self._render(context)
  File "/usr/local/lib/python2.7/site-packages/sentry/../django/test/utils.py", line 85, in instrumented_test_render
    return self.nodelist.render(context)
  File "/usr/local/lib/python2.7/site-packages/sentry/../django/template/base.py", line 840, in render
    bit = self.render_node(node, context)
  File "/usr/local/lib/python2.7/site-packages/sentry/../django/template/debug.py", line 78, in render_node
    return node.render(context)
  File "/usr/local/lib/python2.7/site-packages/sentry/../django/template/loader_tags.py", line 123, in render
    return compiled_parent._render(context)
  File "/usr/local/lib/python2.7/site-packages/sentry/../django/test/utils.py", line 85, in instrumented_test_render
    return self.nodelist.render(context)
  File "/usr/local/lib/python2.7/site-packages/sentry/../django/template/base.py", line 840, in render
    bit = self.render_node(node, context)
  File "/usr/local/lib/python2.7/site-packages/sentry/../django/template/debug.py", line 78, in render_node
    return node.render(context)
  File "/usr/local/lib/python2.7/site-packages/sentry/../django/template/loader_tags.py", line 123, in render
    return compiled_parent._render(context)
  File "/usr/local/lib/python2.7/site-packages/sentry/../django/test/utils.py", line 85, in instrumented_test_render
    return self.nodelist.render(context)
  File "/usr/local/lib/python2.7/site-packages/sentry/../django/template/base.py", line 840, in render
    bit = self.render_node(node, context)
  File "/usr/local/lib/python2.7/site-packages/sentry/../django/template/debug.py", line 78, in render_node
    return node.render(context)
  File "/usr/local/lib/python2.7/site-packages/sentry/../django/template/loader_tags.py", line 62, in render
    result = block.nodelist.render(context)
  File "/usr/local/lib/python2.7/site-packages/sentry/../django/template/base.py", line 840, in render
    bit = self.render_node(node, context)
  File "/usr/local/lib/python2.7/site-packages/sentry/../django/template/debug.py", line 78, in render_node
    return node.render(context)
  File "/usr/local/lib/python2.7/site-packages/sentry/../django/template/loader_tags.py", line 155, in render
    return self.render_template(self.template, context)
  File "/usr/local/lib/python2.7/site-packages/sentry/../django/template/loader_tags.py", line 137, in render_template
    output = template.render(context)
  File "/usr/local/lib/python2.7/site-packages/sentry/../django/template/base.py", line 140, in render
    return self._render(context)
  File "/usr/local/lib/python2.7/site-packages/sentry/../django/test/utils.py", line 85, in instrumented_test_render
    return self.nodelist.render(context)
  File "/usr/local/lib/python2.7/site-packages/sentry/../django/template/base.py", line 840, in render
    bit = self.render_node(node, context)
  File "/usr/local/lib/python2.7/site-packages/sentry/../django/template/debug.py", line 78, in render_node
    return node.render(context)
  File "/usr/local/lib/python2.7/site-packages/sentry/../django/template/base.py", line 1125, in render
    return func(*resolved_args, **resolved_kwargs)
  File "/usr/local/lib/python2.7/site-packages/sentry/templatetags/sentry_dsn.py", line 30, in public_dsn
    key = _get_project_key(project_id)
  File "/usr/local/lib/python2.7/site-packages/sentry/templatetags/sentry_dsn.py", line 18, in _get_project_key
    )[0]
  File "/usr/local/lib/python2.7/site-packages/sentry/../django/db/models/query.py", line 132, in __getitem__
    return list(qs)[0]
  File "/usr/local/lib/python2.7/site-packages/sentry/../django/db/models/query.py", line 96, in __iter__
    self._fetch_all()
  File "/usr/local/lib/python2.7/site-packages/sentry/../django/db/models/query.py", line 857, in _fetch_all
    self._result_cache = list(self.iterator())
  File "/usr/local/lib/python2.7/site-packages/sentry/../django/db/models/query.py", line 220, in iterator
    for row in compiler.results_iter():
  File "/usr/local/lib/python2.7/site-packages/sentry/../django/db/models/sql/compiler.py", line 713, in results_iter
    for rows in self.execute_sql(MULTI):
  File "/usr/local/lib/python2.7/site-packages/sentry/../django/db/models/sql/compiler.py", line 785, in execute_sql
    cursor = self.connection.cursor()
  File "/usr/local/lib/python2.7/site-packages/sentry/../django/db/backends/__init__.py", line 162, in cursor
    cursor = util.CursorWrapper(self._cursor(), self)
  File "/usr/local/lib/python2.7/site-packages/sentry/db/postgres/decorators.py", line 42, in inner
    return func(self, *args, **kwargs)
  File "/usr/local/lib/python2.7/site-packages/sentry/db/postgres/base.py", line 60, in _cursor
    cursor = super(DatabaseWrapper, self)._cursor()
  File "/usr/local/lib/python2.7/site-packages/sentry/../django/db/backends/__init__.py", line 132, in _cursor
    self.ensure_connection()
  File "/usr/local/lib/python2.7/site-packages/sentry/../django/db/backends/__init__.py", line 127, in ensure_connection
    self.connect()
  File "/usr/local/lib/python2.7/site-packages/sentry/../django/db/utils.py", line 99, in __exit__
    six.reraise(dj_exc_type, dj_exc_value, traceback)
  File "/usr/local/lib/python2.7/site-packages/sentry/../django/db/backends/__init__.py", line 127, in ensure_connection
    self.connect()
  File "/usr/local/lib/python2.7/site-packages/sentry/../django/db/backends/__init__.py", line 115, in connect
    self.connection = self.get_new_connection(conn_params)
  File "/usr/local/lib/python2.7/site-packages/sentry/../django/db/backends/postgresql_psycopg2/base.py", line 115, in get_new_connection
    return Database.connect(**conn_params)
  File "/usr/local/lib/python2.7/site-packages/psycopg2/__init__.py", line 164, in connect
    conn = _connect(dsn, connection_factory=connection_factory, async=async)
django.db.utils.OperationalError: FATAL:  password authentication failed for user "postgres"
...

找到解决方案。我 运行 docker 容器具有 sentry.conf.py、-e SENTRY_DB_USER=sentry -e SENTRY_DB_PASSWORD=secret:

中描述的环境变量
docker run -p 8080:9000 -d --name my-sentry \ 
    -e SENTRY_SECRET_KEY=$SENTRY_SECRET_KEY \
    -e SENTRY_DB_USER=sentry \
    -e SENTRY_DB_PASSWORD=secret \
    --link sentry-redis:redis --link sentry-postgres:postgres sentry