docker部署spring boot並接入skywalking【部署篇】
首先給大家說聲抱歉,大家看我之前這篇文章:docker部署spring boot並接入skywalking【探索篇】(https://www.cnblogs.com/windysai/p/15350506.html),應該是挺懵逼的,不單讀者們看得迷迷糊糊,我估計以旁觀者身份看,應該也覺得雲里霧里。所以為了彌補我的過錯,今天好好交代下整個部署流程。
這個測試是從線上業務拿下來的,線上的架構是前后端分離
前端:nginx代理轉發到靜態目錄
后端:nacos注冊中心,直接跑在操作系統的微服務jar包(沒用到docker),數據庫(mysql、mongo、redis)
整個測試,涉及公司內網3台服務器:服務器A用於jenkins發布,服務器B專門跑docker服務(跑nginx、nacos、jar),最后一台服務器C用於跑mysql數據庫(原來已裝有mysql,數據從線上測試環境同步過來,mongo和redis懶得裝了,直接連線上的)
| 服務器 | 應用 | 補充說明 |
| A | jenkins發布前后端任務 | 內網本來已經裝有 |
| B | docker服務(nginx、nacos、jar、skywalking) | |
| C | mysql | mongo、redis連線上 |
一、准備工作
服務器C上面說過,已裝有mysql,只需要把線上測試環境的表同步下來
叫開發幫忙在gitlab上的前端和后端git地址,幫我另起測試分支,將連接服務中心nacos的ip都從線上的改成公司內網虛擬機。最關鍵的是,前端登錄接口要改成內網測試環境的。
二、skywalking部署
yaml文件參考探索篇的鏈接
docker-compose -f skywalking-docker-compose.yaml up -d
三、前端部署
jenkins寫的pipeline,npm編譯后直接發布到nginx代理的靜態頁目錄
像我這里測試:docker start nginx 映射到宿主機的目錄為 /usr/docker/nginx/html/項目目錄/項目目錄二級目錄名
四、后端部署
1、docker部署啟動nacos
用的是nacos的官方鏡像:nacos/nacos-server
下面的docker run命令上的 NACOS_SERVERS ip 隨意
docker run -d --name nacos -p 8848:8848 -e PREFER_HOST_MODE=hostname -e MODE=standalone nacos/nacos-server -e NACOS_SERVERS=172.17.0.2:8848
啟動之后需要進容器修改配置文件:
重啟nacos生效:docker restart nacos
2、docker 部署微服務
探索篇已經說過,由三個目錄組成:build、services、yaml。
build目錄:基於skywalking-base 基礎鏡像來構建微服務鏡像,包括一些環境變量聲明
services目錄:映射運行目錄到docker里面,包括jar包和日志
yaml 目錄:裝有docker-compose.yaml文件,用於管理微服務啟停
這里交代一下,有些問題我還處理好,導致不能用docker-compose 來啟動微服務,今天測試完全是基於手動運行的,因為docker-compose跑的時候一直報錯說找不到build進去的腳本startup.sh,導致容器內的jar包壓根沒有起來。懷疑是構建微服務鏡像寫的Dockerfile文件有問題,打進去的運行腳本:startup.sh 是放在/app目錄下的,docker-compose文件映射的運行目錄也是/app,估計會覆蓋,導致腳本都搞沒了(猜測,可能會有誤導成分 = =)
自動化只能等明天上班再排查下了。。。今晚遠程公司電腦都連不了,囧。。
docker run -itd --name windysai-sw -p 8080:8080 -v /root/test_sw/services/windysai:/app windysai:sw bash
這里假設返回容器id:465456456
(2)進入容器
docker exec -it 465456456 bash
(3)容器內手動運行jar包
java -Duser.timezone=GMT+08 -javaagent:/skywalking/agent/skywalking-agent.jar -jar windysai.jar >> out_windysai.log
整台服務器B的docker服務運行完是這樣的

skywalking監控圖:
前提是服務都已經成功注冊到nacos上哈(服務列表能查到一堆微服務注冊上來)
登錄前端頁面好,進行一系列騷操作(開玩笑),就是各種點擊、同步,千萬不要刪除,或者增加啥。。。

拓撲圖:

