使用 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