docker run -d -p 3306:3306 --name mysql --restart always \ -v /data/mysql/data:/var/lib/mysql \ -e MYSQL_ROOT_PASSWORD=Renfang@123# \ -e MYSQL_ROOT_HOST=% \ -e TZ=Asia/Shanghai \ mysql \ --lower_case_table_names=1 # 进入mysql的docker容器内部 docker exec -it mysql bash # 以root身份进入mysql mysql -u root -p #输入root用户密码 #添加root远程登录,并设置远程登录密码 ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'Renfang@123#'; #刷新权限 FLUSH PRIVILEGES;
下载 sql脚本 后,将其中 apolloconfigdb.sql 和 apolloportaldb.sql 导入mysql创建Apollo相关的数据库
将 apolloconfigdb 中的 serverconfig 里面的 eureka.service.url 字段值改为当前部署的地址
http://apollo-configservice:8080/eureka/,http://apollo-adminservice:8090/eureka/
将 apolloportaldb 中的 serverconfig 里面的 apollo.portal.envs 字段值改为当前需要部署的环境,示例中使用 dev
# 下载apollo相关镜像 docker pull apolloconfig/apollo-configservice docker pull apolloconfig/apollo-adminservice docker pull apolloconfig/apollo-portal
!!!注意修改以下数据库的IP地址!!!
# 创建服务
docker service create --name apollo-configservice --publish 8080:8080 \
--network cssz \
-e SPRING_DATASOURCE_URL="jdbc:mysql://192.168.199.120:3306/ApolloConfigDB?characterEncoding=utf8" \
-e SPRING_DATASOURCE_USERNAME=root -e SPRING_DATASOURCE_PASSWORD=Renfang@123# \
-e SPRING_CLOUD_INETUTILS_IGNORED_INTERFACES[0]=docker0 \
-e SPRING_CLOUD_INETUTILS_IGNORED_INTERFACES[1]=veth.* \
-e EUREKA_INSTANCE_IP_ADDRESS=apollo-configservice \
apolloconfig/apollo-configservice
docker service create --name apollo-adminservice --publish 8090:8090 \
--network cssz \
-e SPRING_DATASOURCE_URL="jdbc:mysql://192.168.199.120:3306/ApolloConfigDB?characterEncoding=utf8" \
-e SPRING_DATASOURCE_USERNAME=root -e SPRING_DATASOURCE_PASSWORD=Renfang@123# \
-e SPRING_CLOUD_INETUTILS_IGNORED_INTERFACES[0]=docker0 \
-e SPRING_CLOUD_INETUTILS_IGNORED_INTERFACES[1]=veth.* \
-e EUREKA_INSTANCE_IP_ADDRESS=apollo-adminservice \
apolloconfig/apollo-adminservice
docker service create --name apollo-portal --publish 8070:8070 \
--network cssz \
-e SPRING_DATASOURCE_URL="jdbc:mysql://192.168.199.120:3306/ApolloPortalDB?characterEncoding=utf8" \
-e SPRING_DATASOURCE_USERNAME=root -e SPRING_DATASOURCE_PASSWORD=Renfang@123# \
-e APOLLO_PORTAL_ENVS=dev\
-e DEV_META=http://apollo-configservice:8080 \
apolloconfig/apollo-portal
# 查看日志 docker service logs apollo-configservice docker service logs apollo-adminservice docker service logs apollo-portal # 删除apollo docker service rm apollo-configservice docker service rm apollo-adminservice docker service rm apollo-portal
using System;
using System.IO;
using Com.Ctrip.Framework.Apollo;
using Microsoft.AspNetCore;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Hosting;
public class Program
{
public static void Main(string[] args)
{
CreateWebHostBuilder(args).Build().Run();
}
public static IWebHostBuilder CreateWebHostBuilder(string[] args)
{
//此处使用多环境切换appsettings.json,便于开发、测试、生产环境切换使用不同的apollo地址
var environmentName = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT");
var configBuilder = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json", optional: true);
#if DEBUG
//本地开发时,使用appsettings.Development.json中的配置,开发、测试、生产环境,均使用appsettings.json配置
if (!string.IsNullOrWhiteSpace(environmentName))
{
configBuilder = configBuilder.AddJsonFile($"appsettings.{environmentName}.json", optional: true);
}
#endif
var config = configBuilder.AddApollo(configBuilder.Build().GetSection("apollo"))
.AddDefault()
//针对各子系统,使用各自私有的命名空间,如果添加的类型为json文件,需要指定
.AddNamespace("muster", Com.Ctrip.Framework.Apollo.Enums.ConfigFileFormat.Json)
.Build();
return WebHost.CreateDefaultBuilder(args)
.UseKestrel()
.UseUrls(config["server.urls"].Split(';'))
.UseConfiguration(config)
.UseContentRoot(Directory.GetCurrentDirectory())
.UseStartup<Startup>();
}
}
{
"apollo": {
"AppId": "cssz",
"MetaServer": "http://apollo-configservice:8080"
//本地开发时,如果apollo部署在docker集群中,需要指定ConfigServer
//以下地址为nginx反向代理地址,代理到docker集群中apollo相关服务端口
"ConfigServer": [
"http://192.168.199.8:8080"
]
},
//配置文件中仍保留redis相关配置,是因为redis辅助类在程序运行时,
//直接读取的appsettings.json文件中的配置,未使用注入方式注入IConfiguration类
"RedisHost": "192.168.199.10:6379",
"RedisPassWord": "root",
"RedisDefaultKey": "Muster"
}
| 修改日期 | 修改人 | 备注 |
| 2021-06-11 15:29:28[当前版本] | 郑伟 | 其他原因... |
| 2021-06-11 13:42:06 | 郑伟 | 格式调整 |
| 2021-06-11 11:56:15 | 郑伟 | 格式调整 |
| 2021-06-11 11:54:18 | 郑伟 | 创建版本 |
| 附件类型 |
|
|
|
|
||