【问题标题】:How to setup sentry with docker如何使用 docker 设置哨兵
【发布时间】:2015-03-02 01:49:31
【问题描述】:

我在 dockerhub 中找到了official sentry image。但是文档不完整,无法一步步搭建环境。

我们必须先设置数据库容器,但他们都没有告诉如何设置它。具体来说,我不知道哨兵会使用什么用户名和密码。

当我运行哨兵容器时,我也收到以下错误:

sudo docker run --name some-sentry --link some-mysql:mysql -d sentry
e888fcf2976a9ce90f80b28bb4c822c07f7e0235e3980e2a33ea7ddeb0ff18ce

sudo docker logs some-sentry
Traceback (most recent call last):
  File "/usr/local/bin/sentry", line 9, in <module>
    load_entry_point('sentry==6.4.4', 'console_scripts', 'sentry')()
  File "/usr/local/lib/python2.7/site-packages/sentry/utils/runner.py", line 310, in main
    initializer=initialize_app,
  File "/usr/local/lib/python2.7/site-packages/logan/runner.py", line 167, in run_app
    configure_app(config_path=config_path, **kwargs)
  File "/usr/local/lib/python2.7/site-packages/logan/runner.py", line 89, in configure_app
    raise ValueError("Configuration file does not exist at %r" % (config_path,))
ValueError: Configuration file does not exist at '/.sentry/sentry.conf.py'

【问题讨论】:

  • 尝试步骤并在遇到困难时提出问题
  • 我试过官方镜像后卡住了。这是related issue。我的问题是在运行哨兵之前不知道如何设置数据库容器。
  • hub.docker.com/_/sentry 有弃用通知。

标签: docker sentry


【解决方案1】:

更新大约 21 版

根据 Docker Hub 上的弃用通知,他们似乎不想再为我们构建官方镜像。不过,好消息,https://develop.sentry.dev/self-hosted/#getting-started

似乎现在也需要 Kafka 和 Zookeeper。关注文档以保持最新状态。


这是一个移动的目标。我建议检查https://hub.docker.com/_/sentry/ 的更新,因为他们的文档非常好。

大约是第 8 版,您可以轻松地将这些说明转换为使用 docker-compose

docker-compose.yml

version: "2"
services:
  redis:
    image: redis:3.0.7
    networks:
    - sentry-net

  postgres:
    image: postgres:9.6.1
    environment:
    - POSTGRES_USER:sentry
    - POSTGRES_PASSWORD:sentry
    # volumes:
    # - ./data:/var/lib/postgresql/data:rw
    networks:
    - sentry-net

  sentry:
    image: sentry:${SENTRY_TAG}
    depends_on:
    - redis
    - postgres
    environment:
    - SENTRY_REDIS_HOST=redis
    - SENTRY_SECRET_KEY=${SECRET}
    - SENTRY_POSTGRES_HOST=postgres
    ports:
    - 9000:9000
    networks:
    - sentry-net

  sentry_celery_beat:
    image: sentry:${SENTRY_TAG}
    depends_on:
    - sentry
    environment:
    - SENTRY_REDIS_HOST=redis
    - SENTRY_SECRET_KEY=${SECRET}
    - SENTRY_POSTGRES_HOST=postgres
    command: "sentry run cron"
    networks:
    - sentry-net

  sentry_celery_worker:
    image: sentry:${SENTRY_TAG}
    depends_on:
    - sentry
    environment:
    - SENTRY_REDIS_HOST=redis
    - SENTRY_SECRET_KEY=${SECRET}
    - SENTRY_POSTGRES_HOST=postgres
    command: "sentry run worker"
    networks:
    - sentry-net

networks:
  sentry-net:

.env

SENTRY_TAG=8.10.0

运行docker run --rm sentry:8.10.0 config generate-secret-key 并添加密码

.env 更新

SENTRY_TAG=8.10.0
SECRET=somelongsecretgeneratedbythetool

首次开机:

docker-compose up -d postgres
docker-compose up -d redis
docker-compose run sentry sentry upgrade

完全启动

docker-compose up -d

调试

docker-compose ps
docker-compose logs --tail=10

【讨论】:

【解决方案2】:

查看sentry.conf.py 文件,它是官方哨兵码头图像的一部分。它从环境中获得了一堆属性,例如SENTRY_DB_NAME,SENTRY_DB_USER。以下是该文件的摘录。

os.getenv('SENTRY_DB_PASSWORD')
or os.getenv('MYSQL_ENV_MYSQL_PASSWORD')
or os.getenv('MYSQL_ENV_MYSQL_ROOT_PASSWORD')

所以关于如何设置数据库密码的问题,它必须在环境变量中设置。你可以通过运行来做到这一点:

sudo docker run --name some-sentry --link some-mysql:mysql \
    -e SENTRY_DB_USER=XXX                                  \
    -e SENTRY_DB_PASSWORD=XXX                              \
    -d sentry

至于您的异常问题,您似乎缺少配置文件Configuration file does not exist at '/.sentry/sentry.conf.py' 该文件被复制到容器内的 /home/user/.sentry/sentry.conf.py 中。我不确定为什么您的哨兵安装在 /.sentry/sentry.conf.py 中寻找它。可能有一个环境变量或一个设置来控制它,或者这可能只是容器中的一个错误。

【讨论】:

  • 感谢@usman 的回复。看来我应该像你说的那样设置-e SENTRY_DB_USER=XXX-e SENTRY_DB_PASSWORD=XXX。而且我不需要关心 sentry.conf.py,对吧?
  • 配置文件引用了环境变量,所以你仍然需要注意。
【解决方案3】:

这对我有用https://github.com/slafs/sentry-docker,我们不必设置数据库或其他。稍后我会详细了解配置。

【讨论】:

    【解决方案4】:

    这里是我的 docker compose yml,官方图片来自https://hub.docker.com/_/sentry/:

    https://gist.github.com/ebuildy/270f4ef3abd41e1490c1

    运行:

    docker-compose -p sw up -d
    docker exec -ti sw_sentry_1 sentry upgrade
    

    就是这样!

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多