我在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'
答案 0 :(得分:6)
这是一个移动目标。我建议检查https://hub.docker.com/_/sentry/是否有更新,因为他们的文档非常好。
Circa版本8您可以轻松转换这些说明以使用docker-compose
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:
SENTRY_TAG=8.10.0
运行docker run --rm sentry:8.10.0 config generate-secret-key
并添加秘密
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
答案 1 :(得分:1)
查看官方哨兵码头图像中的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上找它。可能存在环境变量或控制此设置的设置,或者这可能只是容器中的错误。
答案 2 :(得分:1)
这对我https://github.com/slafs/sentry-docker有效,我们不必设置数据库或其他人。稍后我会详细了解配置。
答案 3 :(得分:1)
这里我的docker用https://hub.docker.com/_/sentry/的官方图片组成yml:
https://gist.github.com/ebuildy/270f4ef3abd41e1490c1
执行命令
docker-compose -p sw up -d
docker exec -ti sw_sentry_1 sentry upgrade
多数民众赞成!