Windows 系统使用 docker 本地安装并运行 Sentry
使用 docker 本地试用 sentry
1 Windows 启用 WSL2,配置 docker
1 安装 docker desktop
2 启用 WSL2
旧版 WSL 的手动安装步骤 | Microsoft Docs
3 在 Microsoft Store 安装 Ubuntu
4 在 docker desktop 中启用 Use the WSL 2 based engine
5 在 docker desktop 中启用 Enable integration with additional distros: Ubuntu
2 安装 Sentry
Sentry 的 docker 要求是 Linux 环境
启动 Ubuntu,在 Ubuntu 的命令行中,直接使用这里的脚本配置
Self-Hosted Sentry | Sentry Developer Documentation
1 git clone 仓库
git clone https://github.com/getsentry/self-hosted.git
如果没有安装 git,先安装
sudo apt-get update
sudo apt-get install git
2 cd 到 self-hosted
目录,运行 install
sudo ./install.sh
// 如果 git 链接不稳,可以跳过 commit 检查
sudo ./install.sh --skip-commit-check
3 运行 docker
在 self-hosted 目录运行 docker compose
sudo docker-compose --env-file .env.custom up -d
不出意外应该就可以了,本机直接访问 http://127.0.0.1:9000/
即可,这里 Ubuntu 和 Windows 的端口是共用的。
3 其它可能遇到的问题与处理
1 使用 wsl -l -v
查看 wsl 运行的实例与版本
如果是版本 1 或者需要删除,使用命令
wsl --unregister <DistributionName>
如 wsl --unregister Ubuntu
参考文章:
docker下一步步部署sentry - mvpbang - 博客园
win10利用WSL2安装docker的2种方式 - 知乎
其它的补充 1 Linux 安装 Sentry
1 centos 下安装 docker 和 docker-compose
Install Docker Engine on CentOS | Docker Documentation
Install Docker Compose | Docker Documentation
2 如果在虚拟机中安装,则需要主动暴露端口
# centos
firewall-cmd --zone=public --add-port=5672/tcp --permanent # 开放5672端口
firewall-cmd --zone=public --remove-port=5672/tcp --permanent # 关闭5672端口
firewall-cmd --reload # 配置立即生效
firewall-cmd --zone=public --query-port=8080/tcp # 检查是否生效
firewall-cmd --list-ports # 查看已开放端口
centOS7查看端口及开放端口 - TimeBear的个人空间 - OSCHINA - 中文开源技术交流社区
其它的补充 2 Email 的配置
如果邮件发不出去,则需要重新配置 email 服务,
在 sentry 的目录中,找到 ./sentry/config.yml,在里面配置 email 服务器
示例:
然后在 docker-conpose.yml 所在目录,运行 docker-compose restart
重启服务
502 问题
在配置完成邮箱,重启 docker 容器之后,可能出现上报接口 /api/2/store/
访问 502 的问题,
502 Bad Gateway (NGINX) - On-Premise - #sentry
Getting 502 generic error back every time after batch of uploads · Issue #41 · getsentry/sentry-cli
没有分析具体原因,简单粗暴的处理方式就是,删除所有的容器,然后使用上面的 sudo docker-compose --env-file .env.custom up -d
重新构建。
因为数据都是挂载出来了,所以不会有影响。
docker 容器批量停止与删除(删除全部的,请确保这个机器上只有 sentry 相关的容器在运行)
docker stop $(docker ps -q) 1
docker rm $(docker ps -aq) 1