Docker部署Sentry
部署Sentry实例
1.启动Redis容器
docker run -d --name sentry-redis redis
2.启动Postgres容器
docker run -d --name sentry-postgres -e POSTGRES_PASSWORD=secret -e POSTGRES_USER=sentry postgres
3.生成所有sentry容器共享的密钥
该值将用作 SENTRY_SECRET_KEY 环境变量
export SECRET_KEY=$(docker run --rm sentry config generate-secret-key|tail -n 1)
4.如果这是一个新数据库,则需要运行 upgrade
docker run -it --rm -e SENTRY_SECRET_KEY=${SECRET_KEY} --link sentry-postgres:postgres --link sentry-redis:redis sentry upgrade
直接使用docker run 运行ubuntu的镜像时会出现 the input device is not a TTY. If you are using mintty, try prefixing the command with 'winpty' 的错误,前面加上winpty即可,即winpty docker run ---
winpty docker run -it --rm -e SENTRY_SECRET_KEY=${SECRET_KEY} --link sentry-postgres:postgres --link sentry-redis:redis sentry upgrade
注意:这 -it 很重要,因为初始升级会提示创建初始用户,如果没有它则会失败
5.现在启动Sentry服务器
docker run -d -p 8080:9000 --name my-sentry -e SENTRY_SECRET_KEY=${SECRET_KEY} --link sentry-redis:redis --link sentry-postgres:postgres sentry
端口映射:如果希望能够在没有容器IP的情况下从主机访问实例,则可以使用标准端口映射。只需添加 -p 8080:9000 到docker run参数,然后在浏览器中访问或者 http://localhost:8080 或http://host-ip:8080。
6.启动调度器和worker(每个worker都有一个唯一的名称)
docker run -d --name sentry-cron -e SENTRY_SECRET_KEY=${SECRET_KEY} --link sentry-postgres:postgres --link sentry-redis:redis sentry run cron
docker run -d --name sentry-worker-1 -e SENTRY_SECRET_KEY=${SECRET_KEY} --link sentry-postgres:postgres --link sentry-redis:redis sentry run worker
配置初始用户
如果您在此期间未创建超级用户upgrade,请使用以下命令创建一个:
docker run -it --rm -e SENTRY_SECRET_KEY=${SECRET_KEY} --link sentry-redis:redis --link sentry-postgres:postgres sentry createuser
环境变量
启动sentry映像时,可以通过在 docker run 命令行上传递一个或多个环境变量来调整Sentry实例的配置。请注意,这些环境变量是作为快速入门提供的,强烈建议您在自己的配置文件中安装或使用 sentry:onbuild 变体。
1.SENTRY_SECRET_KEY
用于Sentry中的加密功能的密钥。此密钥在所有正在运行的实例中应该是唯一且一致的。您可以生成一个新的密钥,例如:
docker run --rm sentry config generate-secret-key
2.SENTRY_POSTGRES_HOST,SENTRY_POSTGRES_PORT,SENTRY_DB_NAME,SENTRY_DB_USER,SENTRY_DB_PASSWORD
Postgres服务器的数据库连接信息。如果postgres存在链接容器,则不需要这些值。
3.SENTRY_REDIS_HOST,SENTRY_REDIS_PORT,SENTRY_REDIS_DB
Redis服务器的连接信息。如果redis存在链接容器,则不需要这些值。
4.SENTRY_MEMCACHED_HOST, SENTRY_MEMCACHED_PORT
Memcache服务器的连接信息。如果memcached存在链接容器,则不需要这些值。
5.SENTRY_FILESTORE_DIR
存储Sentry文件的目录。默认为 /var/lib/sentry/files, 是一个 VOLUME 可以持久化数据。
6.SENTRY_SERVER_EMAIL
From: 发送电子邮件中使用的电子邮件地址。默认:root@localhost
7.SENTRY_EMAIL_HOST,SENTRY_EMAIL_PORT,SENTRY_EMAIL_USER,SENTRY_EMAIL_PASSWORD,SENTRY_EMAIL_USE_TLS
发送smtp服务器的连接信息。如果smtp存在链接容器,则不需要这些值。
8.SENTRY_MAILGUN_API_KEY
如果您使用Mailgun作为入站邮件,请设置API密钥并配置转发到的路由 /api/hooks/mailgun/inbound/。
自定义镜像
该sentry镜像有许多种,每一个设计用于特定的使用情况。
1.sentry:<version>
这是事实上的镜像。如果您不确定您的需求是什么,您可能想要使用这个。它被设计为既可以用作丢弃容器(安装源代码并启动容器来启动应用程序),也可以用作构建其他镜像的基础。
2.sentry:onbuild
通过复制自定义 config.yml 或 sentry.conf.py 文件并安装插件,可以轻松自定义构建自己的Sentry实例 requirements.txt。
也可以在 onbuild 包中开发自定义扩展。如果构建目录包含 setup.py 文件,则也会安装该文件。
有关更多信息,请参阅Sentry官方文档。
要创建自定义sentry:onbuild程序包,只需执行以下操作:
1.创建一个包含的Dockerfile,基础镜像为 FROM sentry:onbuild
2.在同一目录中,添加自定义配置文件。
3.可以从docker-sentry GitHub repo获取这些文件的副本以用作模板。
4.构建你的镜像: docker build -t mysentry .
5.使用 mysentry 而不是运行自定义镜像sentry。
参考地址:http://blog.seekplum.top/docker-sentry-deploy/ https://hub.docker.com/_/sentry/