美文网首页
docker下 安装 apollo

docker下 安装 apollo

作者: smallcui | 来源:发表于2020-03-16 18:55 被阅读0次

    官网下载sql ,创建ApolloConfigDB,ApolloPortalDB数据库

    https://github.com/ctripcorp/apollo/tree/master/scripts/sql

    创建容器

    docker run -d  --name apollo     -p 8090:8090     -p  8080:8080  -p 8070:8070   nobodyiam/apollo-quick-start:latest
    
    

    起不起来, 修改demo.sh

    下载demo.sh

     docker cp  apollo:/apollo-quick-start/demo.sh  . 
     
    
    

    修改成对应的数据源,密码当中不要有一些特殊的符号,比如&,坑很大

    apollo_config_db_url=jdbc:mysql://10.8.0.5:3306/ApolloConfigDB?characterEncoding=utf8
    apollo_config_db_username=root
    apollo_config_db_password=
    
    # apollo portal db info
    apollo_portal_db_url=jdbc:mysql://10.8.0.5:3306/ApolloPortalDB?characterEncoding=utf8
    apollo_portal_db_username=root
    apollo_portal_db_password=
    
    

    修改注册的eureka的ip,否则会已docker的ip注册

    增加ip -Deureka.instance.ip-address=10.8.0.1

    
    SERVER_JAVA_OPTS="$BASE_JAVA_OPTS -Dspring.profiles.active=github -Deureka.service.url=$eureka_service_url -Deureka.instance.ip-address=10.8.0.1"
    
    

    启动apollo

    上传demo.sh ,启动

     docker cp demo.sh  apollo:/apollo-quick-start/
     docker restart apollo 
    
    

    使用一些坑

    将org.springframework.boot:spring-boot-devtools这样的依赖,去掉,否则apollo一有改动,就重启
    

    一些有用的case

    https://github.com/ctripcorp/apollo-use-cases

    动态开始日志级别

    在apolo 创建 logging.level=debug

    java 客户端

    package com.cc.config;
    
    import com.ctrip.framework.apollo.Config;
    import com.ctrip.framework.apollo.model.ConfigChangeEvent;
    import com.ctrip.framework.apollo.spring.annotation.ApolloConfig;
    import com.ctrip.framework.apollo.spring.annotation.ApolloConfigChangeListener;
    
    import java.util.Set;
    import javax.annotation.PostConstruct;
    import javax.annotation.Resource;
    
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.boot.logging.LogLevel;
    import org.springframework.boot.logging.LoggingSystem;
    import org.springframework.stereotype.Service;
    
    /**
     * Created by kl on 2018/6/25. Content :动态日志配置
     */
    @Service
    public class LoggerConfiguration {
        private static final Logger logger = LoggerFactory.getLogger(LoggerConfiguration.class);
        private static final String LOGGER_TAG = "logging.level";
    
        @Resource
        private LoggingSystem loggingSystem;
    
        @ApolloConfig
        private Config config;
    
        @ApolloConfigChangeListener
        private void onChange(ConfigChangeEvent changeEvent) {
            refreshLoggingLevels();
        }
    
        @PostConstruct
        private void refreshLoggingLevels() {
            Set<String> keyNames = config.getPropertyNames();
            for (String key : keyNames) {
                if (LOGGER_TAG.equalsIgnoreCase(key)) {
                    String strLevel = config.getProperty(key, "info");
                    LogLevel level = LogLevel.valueOf(strLevel.toUpperCase());
                    loggingSystem.setLogLevel(key.replace(LOGGER_TAG, ""), level);
                    logger.info("日志级别:{}->改为了:{}", key, strLevel);
                }
            }
        }
    
    }
    
    
    

    相关文章

      网友评论

          本文标题:docker下 安装 apollo

          本文链接:https://www.haomeiwen.com/subject/uqcoehtx.html