攜程 Apollo 配置中心 | 學習筆記(五) | 詳細介紹攜程Apollo配置中心部署至Docker容器
一、Apollo配置中心介紹
關於攜程apollo配置中心的介紹,官網和網上都有許多教程,這裡我放下之前我寫的,如果有不瞭解的可以先看這些文章。
二、環境準備
Java Jdk 1.8、Maven 3.3.9、Apollo版本 0.10.1、docker 17.03.2-ce、docker-compose 1.15.0
以上這些環境需要安裝並配置測試好。
說明:此文章介紹,如何使用Docker快速部署Apollo,分別將Apoll-conifgservice、Apollo-adminservice、Apollo-portal分別docker化,來提高其擴充套件性,其中Mysql沒有Docker化,而是在另外一臺伺服器中。
三、部署步驟
3.1 官網下載Apollo
https://github.com/ctripcorp/apollo
3.2 引入到Eclipse
確認專案不報錯後,修改apollo-adminservice、apollo-configservice bootstrap.yml中Eureka服務註冊與發現地址:修改成伺服器Ip地址。
3.3 修改Eureka環境地址
這裡我已經修改了埠號,以避免8080埠衝突,這裡有需要改的同學可以注意下。
修改apollo-core專案中環境地址
3.4 修改startup.sh 檔案
因為修改了埠號,所以需要在apollo-configservice、apollo-portal 中分別進入到src\main\scripts 目錄中,修改startup.sh檔案
3.4.1 修改apollo-configservice startup.sh檔案
修改成8077埠
SERVER_PORT=8077
3.4.2 修改apollo-portal startup.sh檔案
修改成8070埠
SERVER_PORT=8070
3.5 修改Dockerfile檔案
分別修改apollo-configservice和apollo-portal \src\main\docker 目錄中的Dockerfile檔案,
修改apollo-configservice 當中的EXPOSE 8077
修改apollo-portal 當中的EXPOSE 8070
3.6 修改build.bat檔案
這裡我在Windows作業系統中 生成Jar檔案,所以改build.bat。如果在Linux系統中,可以修改.sh檔案。
修改內容如圖所示:
主要修改Mysql 地址以及服務註冊與發現地址。
然後,點選執行build.bat檔案,直至顯示執行成功!(需要注意安裝配置Maven環境)
3.6 上傳檔案至伺服器
如圖所示,在/home/apollo目錄中新建三個目錄檔案,分別將上一步驟在\target目錄中生成的.jar、.github.zip檔案上傳至伺服器中 以及 \src\main\docker 目錄中的Dockerfile檔案
3.7 執行docker-compose.yml檔案
檔案內容如下:
version: "3"
services:
apollo-configservice: ##容器服務名
container_name: apollo-configservice ##容器名
build: apollo-configservice/ ##Dockerfile路徑
image: apollo-configservice:0.10.1 ##映象名
network_mode: host ##網路設定
ports:
- "8077:8077"
volumes:
- "/Users/mobin/opt/logs/100003171:/opt/logs/100003171" ##將/opt/logs/100003171目錄掛載到宿主機的/Users/mobin/opt/logs/100003171方便在宿主機上檢視日誌
environment:
- spring_datasource_url=jdbc:mysql://xxxx:3306/ApolloConfigDB?characterEncoding=utf8
- spring_datasource_username=root
- spring_datasource_password=xxxx
apollo-adminservice:
container_name: apollo-adminservice
build: apollo-adminservice/
image: apollo-adminservice:0.10.1
network_mode: host
#net: "host"
ports:
- "8090:8090"
depends_on:
- apollo-configservice
volumes:
- "/Users/mobin/opt/logs/100003172:/opt/logs/100003172"
environment:
- spring_datasource_url=jdbc:mysql://xxxx:3306/ApolloConfigDB?characterEncoding=utf8
- spring_datasource_username=root
- spring_datasource_password=xxx
apollo-portal:
container_name: apollo-portal
build: apollo-portal/
image: apollo-portal:0.10.1
network_mode: host
#net: "host"
ports:
- "8070:8070"
depends_on:
- apollo-adminservice
volumes:
- "/Users/mobin/opt/logs/100003173:/opt/logs/100003173"
environment:
- spring_datasource_url=jdbc:mysql://xxxx:3306/ApolloPortalDB?characterEncoding=utf8
- spring_datasource_username=root
- spring_datasource_password=xxx
四、執行結果
輸入命令: docker-compose up -d
啟動之後,不會馬上就有,輸入top命令檢視
這時候會看到有java 佔用cpu 超過 100% 當執行完了就會顯示正常。這時候輸入 伺服器ip:8070就會看到起好的專案
到這裡基本完成,如何有問題,可在下方留言,中間我也遇到過許多坑。歡迎探討!