热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

rancher2+docker+SpringCloud+jenkins+redis集群+mysql主从搭建:八、springeureka创建dockerfile并运行

添加(dockerDockerfile)或修改:springcloud-docker-clusterspring-basespring-eurekasrcmaindockerDoc

添加(docker/Dockerfile)或修改:springcloud-docker-cluster/spring-base/spring-eureka/src/main/docker/Dockerfile

/root/111/gitee_cangku/rancher_springcloud/为本地仓库的路径:

由于直接下载java:8镜像jenkins会卡主~这里采取把镜像下载下来传到私有仓库,dockerfile修改从私有仓库获取
docker pull java:
8
docker tag java:
8 192.168.109.137:5000/java:8
docker push
192.168.109.137:5000/java:8

备注:

vim /root/111/gitee_cangku/rancher_springcloud/spring-base/spring-eureka/src/main/docker/Dockerfile

FROM 192.168.109.137:5000/java:8
RUN ln
-snf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' > /etc/timezone
#将本地文件夹挂载到当前容器
#VOLUME
/tmp
ADD spring
-eureka-0.0.1-SNAPSHOT.jar app.jar
#RUN [
"/bin/bash","-c","touch /app.jar"]
#指定JAVA 环境变量
#ENV JAVA_HOME
/jdk/jre
#ENV PATH $PATH:$JAVA_HOME
/bin
#ENV CLASSPATH .:$JAVA_HOME
/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
#开放8000端口
EXPOSE
8000
#配置容器启动后执行的命令
ENTRYPOINT [
"java","-jar","/app.jar"]

修改本地仓库代码eureka中dockerfile文件,并提交到gitee

修改代码中的dockerfile文件(并重新提交、打包,可以和下面的提交一起)
并修改:
/root/111/gitee_cangku/rancher_springcloud/spring-base/spring-eureka/src/main/resources/目录下的
相互注册:即application.yml使用的是active:
141(即application-141.yml),如果选择部署机器标签为138,那么application-141.yml中hostname:ip就应该为139机器
这里我的安排是:
141 对应 application-141.yml (hostname:192.168.109.138)部署机器为139
application
-141.yml
application
-142.yml
中的hostname:ip 地址

结合自己环境修改代码中的配置

spring:
profiles:
# active:
141
active:
142

application.yml

server:
port:
8000
eureka:
client:
service
-url:
defaultZone: http:
//${customConfig.security.username}:${customConfig.security.password}@${customConfig.eureka.server.hostname}:${server.port}/eureka/
register-with-eureka: true
fetch
-registry: true
server:
peer
-node-read-timeout-ms: 2000 #读取对等节点服务器复制的超时的时间,单位为毫秒,默认为200
spring:
application:
name: spring
-eureka
security:
user:
name: ${customConfig.security.username}
password: ${customConfig.security.password}
management:
endpoint:
health:
show
-details: always #健康情况-展示全部详情,否则只展示status信息


customConfig:
eureka:
server: #eureka的配置
hostname:
192.168.109.138
security: #security的配置
username: admin
password: admin123

#Eureka Server在启动的时候会创建一个定时任务,默认每隔一段时间(默认为60秒)将当前清单中超时(默认为90秒)没有续约的服务剔除出去。

application-141.yml

server:
port:
8000
eureka:
client:
service
-url:
defaultZone: http:
//${customConfig.security.username}:${customConfig.security.password}@${customConfig.eureka.server.hostname}:${server.port}/eureka/
register-with-eureka: true
fetch
-registry: true
server:
peer
-node-read-timeout-ms: 2000 #读取对等节点服务器复制的超时的时间,单位为毫秒,默认为200
spring:
application:
name: spring
-eureka
security:
user:
name: ${customConfig.security.username}
password: ${customConfig.security.password}
management:
endpoint:
health:
show
-details: always #健康情况-展示全部详情,否则只展示status信息


customConfig:
eureka:
server: #eureka的配置
hostname:
192.168.109.139
security: #security的配置
username: admin
password: admin123

#Eureka Server在启动的时候会创建一个定时任务,默认每隔一段时间(默认为60秒)将当前清单中超时(默认为90秒)没有续约的服务剔除出去。

application-142.yml

推送依据自我环境修改完的代码到远程:

git add .
git commit -m "说明"
git push origin master #(git push origin 本地分支名:refs/remotes/远程分支名) 将代码推至远程就可以了

 

在jenkins上构建:

新建一个任务(springcloud-eureka)--构建一个maven项目--确定
源码管理(git,并配置)

构建触发器 去掉勾
spring-base/spring-eureka/pom.xml
clean package -Dmaven.test.skip=true
点击maven的高级按钮
DEFAULT
settings file 选择文件系统中的setting文件
/var/jenkins_home/tools/hudson.tasks.Maven_MavenInstallation/jenkins-in-maven/conf/settings.xml
Add post-build setp 中选择(执行shell)--
cp /var/jenkins_home/workspace/springcloud-eureka/spring-base/spring-eureka/src/main/docker/Dockerfile /var/jenkins_home/workspace/springcloud-eureka/spring-base/spring-eureka/target/
保存

 

 

 

 

 

 

在jenkins里安装 云docker 插件:

系统设置--新增一个云docker(我的版本中Cloud提示The cloud configuration has moved to a separate configuration page.)点击到新页面配置--新增--docker--Docker Cloud details..,把前面挂载的docker.sock 文
件写入Docker Host URL中:unix:///var/run/docker.sock,点击测试,测试成功可以看到版本号;保存
继续配置 springcloud-eureka:配置docker的镜像构建
Post Steps--Add post-build setp--Build/Publish Docker Image
Directory for Dockerfile(工作路径):/var/jenkins_home/workspace/springcloud-eureka/spring-base/spring-eureka/target/
Cloud选择先前添加docker云配置的名称:docker
Image:192.168.109.137:5000/spring-eureka
Push image打钩
Clean local images打钩
保存
然后jenkins构建看看
成功后查看镜像:curl -XGET http://192.168.109.137:5000/v2/_catalog

 

 

 

 

 

 

rancher部署eureka服务,部署工作负载
spring-eureka
192.168.109.137:5000/spring-eureka
端口 8000 TCP HostPort 8000
主机调度 deploy=worker 因为eureka要相互注册,所以这里标签不用前面的,我们改为iprange=138
高级选项 网络 是否选用主机网络(是),后台会在启动时加上--net=host命令,表示不虚拟出网络

 

138上的eureka启动后,139的我们需要修改代码中的配置文件重新打包;
这里我的安排是:142 对应 application-142.yml (hostname:192.168.109.139)部署机器为138
vim /root/111/gitee_cangku/rancher_springcloud/spring-base/spring-eureka/src/main/resources/application.yml 注释active: 141,启用active: 142
提交代码:
git add .
git commit -m "修改配置部署138"
git push origin master
jenkins重新打包,139因为已经部署了本地有老版本的包,重启不影响,只会改变仓库的镜像包
rancher 克隆一个spring-eureka服务并修改:
spring-eureka-138
主机调度:iprange = 138
删除138机器的上的镜像:docker rmi 192.168.109.137:5000/spring-eureka:latest
然后启动
检查:
1.日志查看
2.rancher访问eureka注册页面可以看到DS Replicas为相互地址,并且俩台都已经注册成功,如下:
SPRING-EUREKA n/a (2) (2) UP (2) - 192.168.109.138:spring-eureka:8000 , 192.168.109.139:spring-eureka:8000
至此eureka集群完毕

 

 

 



推荐阅读
author-avatar
jiajiajy323
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有