首發於: 個人博客
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數據還在,那就能夠。
經過此次的升級,瞭解了不少的東西,對個人成長頗有幫助。