使用Docker构建Apollo

Apollo编译打包

Apollo的Github网址,编译打包构建 可参考分布式部署指南

修改scripts/build.sh脚本

#!/bin/sh

# apollo config db info
apollo_config_db_url=jdbc:mysql://fill-in-the-correct-server:3306/ApolloConfigDB?characterEncoding=utf8
apollo_config_db_username=FillInCorrectUser
apollo_config_db_password=FillInCorrectPassword

# apollo portal db info
apollo_portal_db_url=jdbc:mysql://fill-in-the-correct-server:3306/ApolloPortalDB?characterEncoding=utf8
apollo_portal_db_username=FillInCorrectUser
apollo_portal_db_password=FillInCorrectPassword

# meta server url, different environments should have different meta server addresses
dev_meta=http://fill-in-dev-meta-server:8080
fat_meta=http://fill-in-fat-meta-server:8080
uat_meta=http://fill-in-uat-meta-server:8080
pro_meta=http://fill-in-pro-meta-server:8080

META_SERVERS_OPTS="-Ddev_meta=$dev_meta -Dfat_meta=$fat_meta -Duat_meta=$uat_meta -Dpro_meta=$pro_meta"

# =============== Please do not modify the following content =============== #
# go to script directory
cd "${0%/*}"

cd ..

# package config-service and admin-service
echo "==== starting to build config-service and admin-service ===="

mvn clean package -DskipTests -pl apollo-configservice,apollo-adminservice -am -Dapollo_profile=github -Dspring_datasource_url=$apollo_config_db_url -Dspring_datasource_username=$apollo_config_db_username -Dspring_datasource_password=$apollo_config_db_password

echo "==== building config-service and admin-service finished ===="

echo "==== starting to build portal ===="

mvn clean package -DskipTests -pl apollo-portal -am -Dapollo_profile=github,auth -Dspring_datasource_url=$apollo_portal_db_url -Dspring_datasource_username=$apollo_portal_db_username -Dspring_datasource_password=$apollo_portal_db_password $META_SERVERS_OPTS

echo "==== building portal finished ===="

修改带有fill关键字,注意数据库的用户名和密码,以及各个环境的meta server url。 编译后数据库信息,以及meta server url会被替换掉,但是apollo_profile不会被替换。

构建Apollo的Docker镜像

Apollo项目已经自带了Docker file,可以直接使用下面的文件来打Docker镜像

  • apollo-configservice

  • apollo-adminservice

  • apollo-portal

cd apollo-configservice
mvn clean package -DskipTests docker:build

cd ../apollo-adminservice
mvn clean package -DskipTests docker:build

cd ../apollo-portal
mvn clean package -DskipTests docker:build

分别构建apollo-configservice、apollo-adminservice、apollo-portal的docker文件

Apollo启动运行

# 注意指定eureka的hostname,否则adminservice的eureka服务无法正常
docker run -e hostname=192.168.1.4 -e apollo_profile=github  -d --name apollo-configservice -p 8080:8080 apollo-configservice

# 注意指定eureka的hostname,否则adminservice的eureka服务无法正常
docker run  -e hostname=192.168.1.4 -e apollo_profile=github  -d --name apollo-adminservice -p 8090:8090 apollo-adminservice

# 注意指定eureka的hostname,否则adminservice的eureka服务无法正常
docker run -e hostname=192.168.1.4 -e apollo_profile=github,auth -d --name apollo-portal -p 8070:8070 apollo-portal

Apollo 配置页面

查看eureka中的apollo-configservice、apollo-adminservice服务注册

apollo的运行页面

文章目录
  1. Apollo编译打包
    1. 修改scripts/build.sh脚本
    2. 构建Apollo的Docker镜像
    3. Apollo启动运行
  2. Apollo 配置页面