docker-compose部署Apollo并集成Spring boot

docker-compose部署Apollo并集成Spring boot

​ 记录一下避免后续用到或者分享一下给有需要的人,Apollo新增配置发布这步网上太多就不写了

一、编写docker-compose.yml

版本说明
Apollo: 1.7.1
Mysql: 5.7.27

services:
  mysql5.7:
    container_name: mysql5.7
    image: mysql:5.7.27
    ports:
      - "13306:3306"
    volumes:
      - ./mysql/data:/var/lib/mysql
      - /etc/localtime:/etc/localtime:ro
    command:
      --max_connections=1000
      --innodb-buffer-pool-size=2048M
      --character-set-server=utf8mb4
      --collation-server=utf8mb4_general_ci
      --default-time-zone=+8:00
      --lower-case-table-names=1
      --default-authentication-plugin=mysql_native_password
      --sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
    environment:
      MYSQL_ROOT_PASSWORD: 数据库密码(TODO)
      CONTAINER_TIMEZONE: Asia/Shanghai
    restart: always
    privileged: true
  config-service:
    image: apolloconfig/apollo-configservice:1.7.1
    container_name: config-service
    environment:
      - SPRING_DATASOURCE_URL=jdbc:mysql://172.17.0.1:13306/ApolloConfigDB?useSSL=false&characterEncoding=utf8
      - SPRING_DATASOURCE_USERNAME=root
      - SPRING_DATASOURCE_PASSWORD=password
      - EUREKA_INSTANCE_HOME_PAGE_URL=http://替换为具体的服务器IP地址(TODO):8080
    ports:
      - 8080:8080
    depends_on:
      - mysql5.7
  admin-service:
    image: apolloconfig/apollo-adminservice:1.7.1
    container_name: admin-service
    environment:
      - SPRING_DATASOURCE_URL=jdbc:mysql://172.17.0.1:13306/ApolloConfigDB?useSSL=false&characterEncoding=utf8
      - SPRING_DATASOURCE_USERNAME=root
      - SPRING_DATASOURCE_PASSWORD=password
      - CONFIGSERVICE_URL=http://替换为具体的服务器IP地址(TODO):8080
      - JAVA_OPTS=-Deureka.instance.homePageUrl=http://替换为具体的服务器IP地址(TODO):8090
    ports:
      - 8090:8090
    depends_on:
      - config-service
  apollo-portal:
    image: apolloconfig/apollo-portal:1.7.1
    container_name: apollo-portal
    environment:
      - SPRING_DATASOURCE_URL=jdbc:mysql://172.17.0.1:13306/ApolloPortalDB?useSSL=false&characterEncoding=utf8
      - SPRING_DATASOURCE_USERNAME=root
      - SPRING_DATASOURCE_PASSWORD=password
      - APOLLO_PORTAL_ENVS=dev
      - DEV_META=http://替换为具体的服务器IP地址:8080
      - JAVA_OPTS=-Deureka.instance.homePageUrl=http://替换为具体的服务器IP地址(TODO):8070
    ports:
      - 8070:8070
    depends_on:
      - config-service
      - admin-service

二、构建,并导入数据库

Apollo数据库SQL下载地址

github:https://github.com/apolloconfig/apollo/tree/1.7.1/scripts/docker-quick-start/sql //根据需要选择具体版本

网盘:https://pan.baidu.com/s/1Ieelw6y3adECgktO0ea0Gg 提取码:9wwe

#使用的是新版本的docker如果是旧版本的docker-compose命令可能需要替换为docker-compose
#先构建数据库
docker compose up -d mysql5.7 #密码为上面docker-compose.yml配置的MYSQL_ROOT_PASSWORD
#使用工具连接数据库执行初始化Apollo sql脚本
apolloconfigdb.sql
apolloportaldb.sql

#执行剩下的模块构建
docker compose up -d
#测试服务器IP:8070 
http://ip:8070/ 账号密码:Apollo/admin

三、集成

  • pom.xml引入maven依赖
        <dependency>
            <groupId>com.ctrip.framework.apollo</groupId>
            <artifactId>apollo-client</artifactId>
            <version>1.4.0</version>
        </dependency>
  • yml增加Apollo配置
app:
  id: appid
apollo:
  meta: http://apollo服务ip(TODO):8080
  • Spring boot 启用注解并使用

    @EnableApolloConfig
    @SpringBootApplication
    public class TestProjectApplication {
        
        @Value("${key}")
        private String key;
    
        public static void main(String[] args) {
            SpringApplication.run(TestProjectApplication.class, args);
        }
    
    }
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值