apollo開源地址:
https://github.com/ctripcorp/apollo
第一步
將項目clone到本地,然后在github的releases頁面中下載三個zip文件
本文中重點講解截止2019年1月最新的1.2.0版本的部署方法
第二步
打開clone到本地的項目,目錄結構如下
第三步
在此目錄下創建docker-compose.yml文件,寫入內容:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
version: "3" services: apollo-configservice: ##容器服務名 container_name: apollo-configservice ##容器名 build: apollo-configservice/src/main/docker/ ##Dockerfile路徑 image: apollo-configservice ##鏡像名 ports: - "9180:8080" volumes: - "/opt/logs/100003171" ##將/opt/logs/100003171目錄掛載到宿主機的/Users/mobin/opt/logs/100003171方便在宿主機上查看日志 environment: - spring_datasource_url=jdbc:mysql://192.168.31.136:3306/ApolloConfigDB?characterEncoding=utf8 - spring_datasource_username=root - spring_datasource_password=123456 apollo-adminservice: container_name: apollo-adminservice build: apollo-adminservice/src/main/docker/ image: apollo-adminservice ports: - "9181:8090" depends_on: - apollo-configservice volumes: - "/opt/logs/100003172" environment: - spring_datasource_url=jdbc:mysql://192.168.31.136:3306/ApolloConfigDB?characterEncoding=utf8 - spring_datasource_username=root - spring_datasource_password=123456 apollo-portal: container_name: apollo-portal build: apollo-portal/src/main/docker/ image: apollo-portal ports: - "9182:8070" depends_on: - apollo-adminservice volumes: - "/opt/logs/100003173" environment: - spring_datasource_url=jdbc:mysql://192.168.31.136:3306/ApolloPortalDB?characterEncoding=utf8 - spring_datasource_username=root - spring_datasource_password=123456 |
這里注意兩點:
1.在這里,我將原本的8080,8070,8090端口分別映射到9180,9181,9182端口,因為8080等端口是常用端口,可能會和其他項目發生沖突。
2.記得修改mysql的連接地址
講一下,這里可能有人會問為什么不用apollo項目中提供的quickstart-docker腳本,因為:
在quickstart-docker中,apollo開源項目組為了減少部署操作,內置了mysql等一系列配置,我們在使用的時候肯定不會使用內置的東西,我們希望將數據存在我們自己的mysql數據庫中。還有就是quickstart-docker是為了我們方便演示使用的
第四步
將第一步下載的三個zip文件分別復制到以下目錄中
<1>
<2>
<3>
注意:
這三個目錄分別對應apollo-adminservice,apollo-configservice,apollo-portal服務,同時我們需要分別對這三個目錄下的dockerfile文件進行一下修改,打開dockerfile文件
在這里,我們發現dockerfile中指定的版本號是1.3.0-snapshot,但我們下載的zip包是1.2.0版本的,所以我們要分別對這三個dockerfile進行版本號修改,修改好的文件如下:
第五步
登錄mysql,導入下面文件夾中sql文件,進行數據庫初始化
導入成功后,看到多了兩個數據庫
第六步
將整個項目apollo文件夾打包成zip文件,使用ftp或scp命令將文件上傳到centos7服務器中,在服務器上執行以下命令
1
2
3
|
unzip apollo.zip cd apollo docker-compose up -d |
然后看到命令輸出
就表示這三個docker容器已創建成功
使用
1
|
docker ps -a |
查看docker服務
發現已成功運行,現在打開瀏覽器,輸入
http://0.0.0.0:9182
就可以看到apollo的后臺管理頁面了
第七步
在第六步時,雖然部署完成但是這里有兩個地方需要修改,否則會報錯
1.進入apollo-portal容器
修改apollo-env環境變量
1
2
3
4
5
6
|
local.meta=http://localhost:9180 dev.meta=http://localhost:9180 fat.meta=http://localhost:9180 uat.meta=http://localhost:9180 lpt.meta=${lpt_meta} pro.meta=http://localhost:9180 |
2.修改數據庫apolloconfigdb的serverconfig表中的eureka.service.url字段
http://localhost:9180/eureka/
修改完成后重啟apollo的三個容器即可
注意:
默認賬號是apollo
默認密碼admin
登錄apollo后,打開系統信息頁,可以看到這里有個home page url,因為我們是在docker中部署的,所以這個地方顯示的ip地址是有問題的,它的ip地址是docker容器中的默認ip地址,這個地址是有問題的,因為我們在集成到項目中的時候,訪問的是服務器ip,所以docker容器中的ip地址是訪問不了的,集成的時候就發現讀取不了apollo的配置
官方有給出homepageurl的修改方法,但測試發現還是有問題的
官方的解決方案
在第3條
這里不建議直接修改homepageurl,最好的解決辦法如下:
在application中添加以下代碼
1
2
3
|
static { System.setProperty( "Dapollo.configService" , "http://192.168.X.X" ) } |
到此這篇關于centos7使用docker部署apollo配置中心的實現的文章就介紹到這了,更多相關docker部署apollo配置中心內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!
原文鏈接:https://blog.csdn.net/cc_want/article/details/85873657