主要是有三个服务。
apollo-configservice
apollo-adminservice
apollo-portal
其中 apollo-configservice,apollo-adminservice 是单个环境的数据服务,apollo-portal是统一的Web服务
要先git 获取 源码信息,然后,找到 sql,导入到自己的mysql数据库里
git clone https://github.com/ctripcorp/apollo.git
具体的sql路径
apollo/scripts/sql/apolloportaldb.sql
apollo/scripts/sql/apolloconfigdb.sql
生成后如下所示
然后,开始部署docker
配置服务
apolloconfig/apollo-configservice
docker run -p 8080:8080 -d \
-e SPRING_DATASOURCE_URL="jdbc:mysql://127.0.0.1:3306/ApolloConfigDB?characterEncoding=utf8" \
-e SPRING_DATASOURCE_USERNAME=root \
-e SPRING_DATASOURCE_PASSWORD=123456 \
-v /tmp/logs:/opt/logs \
--name apollo-configservice \
apolloconfig/apollo-configservice
管理服务
apolloconfig/apollo-adminservice
docker run -p 8090:8090 -d \
-e SPRING_DATASOURCE_URL="jdbc:mysql://127.0.0.1:3306/ApolloConfigDB?characterEncoding=utf8" \
-e SPRING_DATASOURCE_USERNAME=root \
-e SPRING_DATASOURCE_PASSWORD=123456 \
-v /tmp/logs:/opt/logs \
--name apollo-adminservice
apolloconfig/apollo-adminservice
web服务
docker run -p 8070:8070 -d ^
-e SPRING_DATASOURCE_URL="jdbc:mysql://192.168.4.40:3306/ApolloPortalDB?characterEncoding=utf8" ^
-e SPRING_DATASOURCE_USERNAME=root ^
-e SPRING_DATASOURCE_PASSWORD=123456 ^
--name apollo-portal ^
apolloconfig/apollo-portal
访问127.0.0.1:8070,账号/密码:apollo/admin。
.net 5 web 需要的配置
appsetting
"apollo": {
"AppId": "123",
"Cluster": "default",
"MetaServer": "http://192.168.4.40:8080/",
//"Secret": "ffd9d01130ee4329875ac3441c0bedda",
"Namespaces": [ "TEST1.one" ],
"Env": "Dev",
"Meta": {
"DEV": "http://192.168.4.40:8080/"
}
}
CreateHostBuilder
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
}).ConfigureAppConfiguration((hostingContext, builder) =>
{
builder
.AddApollo(builder.Build().GetSection("apollo"))
.AddDefault();// .AddNamespace("application")
});
HomeController
private readonly IConfiguration _configuration;
public HomeController(ILogger<HomeController> logger, IConfiguration configuration)
{
_logger = logger;
_configuration = configuration;
}
public IActionResult Index(string key = null)
{
if (string.IsNullOrWhiteSpace(key))
{
return Content("无key信息!");
}
return Content(_configuration[key]);
}