首发于: 个人博客
IOS同事说他发现了sentry的一个bug。说是由于9.0.0的bug致使debug file 提示上传成功,可是上网站却发现根本没有上传。因此就开始了个人升级之路。html
由于个人sentry不单单用在了服务器端,并且还用在了客户端上。因此我须要解决若是sentry中止了,那么如何解决请求等待的问题。nginx
那么我首先想到的就是修改nginx的配置文件。git
下面是我更新的相关内容github
server { listen 80; server_name track.example.com; set_real_ip_from 127.0.0.1; real_ip_header X-Forwarded-For; real_ip_recursive on; location / { // 添加这两行 default_type text/html; // 设置 content-type 表示这是一个网页 return 202; # 返回 202 表示已经接收,可是并不处理 client_max_body_size 100M; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host-Real-IP $http_host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-Pcol http; proxy_pass http://localhost:10000; } }
使用这两行,就能够保证客户端正常请求了数据,可是我却把它给抛弃了。保证客户端的正常浏览。web
接下来就是对sentry进行升级了。docker
首先,进入到指定目录数据库
cd /data/
对相关目录进行备份(备份是个好习惯,千万不要丢弃)bash
cp -r onpremise onpremise2
而后进入目录服务器
cd onpremise
中止sentry的运行app
docker-compose down
拉取最新代码
git pull
这个时候可能会提示如下错误:
error: Your local changes to the following files would be overwritten by merge: docker-compose.yml Please commit your changes or stash them before you merge.
首先咱们先对内容进行diff,查看修改的部分:
git diff docker-compose.yml
将输出记录下来,以便更新代码以后对该文件进行还原。
这是由于你对该文件进行了修改。可是该文件是被追踪的,因此说须要先还原,而后再次拉取,执行如下代码:
git checkout docker-compose.yml git pull
执行完成后就表示拉取最新版本库成功了。
如今就要把配置的docker-compse.yml
内容给还原回来。
接下来就是设置环境变量了:
export SENTRY_IMAGE='sentry:9.1.2'
为何要这么设置呢。由于经过阅读Dockerfile
文件可得知,该文件须要读取环境变量SENTRY_IMAGE
来拉取相关的docker文件。
再次构建咱们的服务
docker-compose build --pull
运行中可能会提示:
09:31:05 [WARNING] sentry.utils.geo: settings.GEOIP_PATH_MMDB not configured.
这个提示应该没有配置GEO数据库的地址。先无论,等之后之后机会能够再去研究它。
如今就是要执行迁移了:
docker-compose run --rm web upgrade
在迁移中可能会提示以下消息:
The following content types are stale and need to be deleted: sentry | dsymapp sentry | versiondsymfile sentry | projectdsymfile sentry | grouphashtombstone Any objects related to these content types by a foreign key will also be deleted. Are you sure you want to delete these content types? If you're unsure, answer 'no'. Type 'yes' to continue, or 'no' to cancel:
由于我也不清楚发生了什么。因此个人回答是no
。
迁移完成就是剩下启动服务了:
docker-compose up -d
一切正常。
最后咱们就是把咱们的nginx 202响应给注销掉,而后重启nginx就ok了。
再次进入以后,发现了UI有一些变化。而且IOS大哥的问题也解决了。可是也产生了一些问题,就是统计的bug统计数据都没了。这不重要,只要bug数据还在,那就能够。
经过此次的升级,了解了不少的东西,对个人成长颇有帮助。