设为首页 加入收藏

TOP

基于容器微服务的PaaS云平台设计(一) 实现容器微服务和持续集成(三)
2017-10-10 12:42:17 】 浏览:10472
Tags:基于 容器 服务 PaaS 平台 设计 实现 持续 集成
jdk8:slim

VOLUME /tmp //docker中创建tmp

ADD eureka-server-0.0.1-SNAPSHOT.jar app.jar

#RUN bash -c 'touch /app.jar'

ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"] //执行app.jar

EXPOSE 8761 //docker服务端口

 

2、运行docker build -t xiong:rureka docker 或者 mvn package docker:build 创建镜像,如下图(为了规范命名,我将前面工程名重建了):

3运行3、容器 docker run -p 8761:8761 0 -d xiong:reruka 将容器的8761端口映射到linux主机的8761端口

4、测试一下 http://192.168.1.100:8761 显示了eureka server的主页,表示一个eureka server容器运行成功(实际生产中,建议一个容器中运行一个进程或者说一个微服务)

 

三 、CI

利用jenkins做持续集成,实验环境还是上面的centos,jdk1.7 、svn server,关闭iptabls和selinux,IP 192.168.1.110

3.1 首先安装jenkins,很简单,增加一个jenkins的YUM源,然后yum -y install jenkins,修改端口为8080、启动 service jenkins start,修改为开机自启动, 访问 http://192.168.1.110:8080,输入admin和密码(由于我不知道默认密码,做了密码重置),显示如下:

 

3.2 配置svn

1、jenkins中安装svn相关插件

2、创建版本库svnadmin create /root/svnrepos

3、配置用户名密码权限等,不累述

4、将上一节的 eurekaserver整个工程目录加入 svn: svn import /root/eurekaserver/ file:///root/svnrepos/eurekaserver/ -m svneureka.out

5、启动svn svnserve -d -r /root/svn/repos

6、测试一下,在win7上svn客户端上输入地址 svn://192.168.1.110,会自动将centos下eurekaserver工程目录下载到win7中,证明svn OK.

 

3.3、利用jenkins 实现持续集成eurekaserver工程,每次svn提交代码时就会自动集成和并部署docker微服务。

1、访问http://192.168.1.110:8080 jenkins主页新增一个svn的插件,然后新建任务,选择自由风格,取名为resukaserver,配置源为SVN,这里有一个坑,会报错unable to access to repository,解决方法可参考

http://blog.csdn.net/benkaoya/article/details/48683269 ,大概思路就是在Jenkins所在服务器访问一次SVN版本库并保存身份认证信息。

3.3.1构建中增加svn和 Execute shell内容如下,同时增加自动任务,每次提交代码时候进行集成和部署:

注意:1、默认是jenkins用户,所以需要加上环境变量。 2、docker需要root用户运行。

 

测试一下,jenkins上点击立刻构建,结果如下:

说明:有个报错,需要将原来的eurekaservicer kill掉再运行新编译的,懒得改了。知道就行。

自动构建和部署完成,访问 http://192.168.1.110:8761 确认微服务启动成功。

至此,只要程序员在svn中commit了新的代码,本程序就会自动编译并运行该微服务并启动对外提供服务。

 

 

未完待续………

                                                   

首页 上一页 1 2 3 下一页 尾页 3/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇jenkins~集群分发功能的具体实现 下一篇基于容器微服务的PaaS云平台设计..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目