jenkins+git+maven+docker持续集成部署
环境准备:
安装centos7.1系统,最小化安装
设置好网络和防火墙 网络需要能访问外网,
ip 192.168.1.7
下面关闭防火墙
setenforce 0
systemctl stop firewalld
systemctl disable firewalld
sed -i 's/enforcing/disabled/g' /etc/selinux/config
设置yum源
cd /etc/yum.repos.d/
wget http://mirrors.aliyun.com/repo/Centos-7.repo
wget http://mirrors.aliyun.com/repo/epel-7.repo
yum -y install epel-release
安装应用:docker+git+maven+jenkins
安装docker
yum install docker -y
修改docker配置
vi /etc/sysconfig/docker
#OPTIONS='--selinux-enabled --log-driver=journald --signature-verification=false'
#if [ -z "${DOCKER_CERT_PATH}" ]; then
# DOCKER_CERT_PATH=/etc/docker
#fi
OPTIONS='--insecure-registry=192.168.1.7:5000'
启动docker
systemctl start docker
systemctl enable docker
创建镜像仓库
docker pull registry
docker run -d -v /opt/registry:/var/lib/registry -p 5000:5000 --name registry registry
docker pull tomcat:7.0.70-jre7-alpine
安装git和maven
yum install git -y
yum install maven -y
配置git用户
cd ~
touch .git-credentials
vi .git-credentials
http://root:123456@192.168.1.7
http://admin:admin@192.168.1.7
http://admin:123456@192.168.1.7
git config --global credential.helper store
git config --global user.name root
git config --global user.email root@corpmail.com
git config --list
建立git项目mybank-demo-maven
cd /opt/ #新建初始化项目
git init --bare mybank-demo-maven.git
然后
cd /tmp/
git clone root@192.168.1.7:/opt/mybank-demo-maven.git #注意用户密码
cd mybank-demo-maven
git clone https://github.com/nichochen/mybank-demo-maven #下载GitHub上的项目
mv mybank-demo-maven/* .
rm -rf mybank-demo-maven
创建Dockerfile
vi Dockerfile
FROM tomcat:7.0.70-jre7-alpine
ADD ./target/ROOT.war /usr/local/tomcat/webapps/mybank.war
1 2 3 4 5 6 | [root@gluster01 mybank-demo-maven] # ll 总用量 16 -rw-r--r--. 1 root root 90 1月 4 00:33 Dockerfile -rw-r--r--. 1 root root 830 1月 3 19:53 pom.xml -rw-r--r--. 1 root root 181 1月 3 19:53 README.md drwxr-xr-x. 3 root root 4096 1月 3 19:53 src |
将文件提交到git
git add pom.xml
git add README.md
git add src
git add Dockerfile
git commit -m 'first commit'
git push origin master
安装jenkins
cd /etc/yum.repos.d/
wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo
rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key
yum install jenkins -y
yum install java -y
yum install net-tools
修改端口为8081
vi /etc/sysconfig/jenkins
JENKINS_PORT="8081"
启动jenkins
/etc/init.d/jenkins start
在浏览器中输入:http://192.168.1.7:8081,效果如下
按照提示执行
cat /var/lib/jenkins/secrets/initialAdminPassword 得到Administrator password
接着设置账号密码
比如 admin:admin root:123456
进入主页面
登陆jenkins, 进入系统管理-插件管理-可选插件 搜索ssh plugin 和 Maven Integration plugin 然后安装, 安装界面选择安装好后重启jenkins
接着进入系统管理--系统设置
在系统设置中设置ssh
在上步中Credentials add 添加用户密码 root :123456
并接着添加jenkins的url配置
系统设置的其他项可以保持不动,保存上面的修改
下面进行全局工具配置
配置其中的 jdk git maven
yum安装的java
用命令查找路径
跟踪软连接
ll /usr/bin/javac
ll /etc/alternatives/javac
ll /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.151-5.b12.el7_4.x86_64/bin/javac
jdk的home就是/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.151-5.b12.el7_4.x86_64/
git的是命令路径
maven和docker
用命令 mvn -v 查看home路径
Apache Maven 3.0.5 (Red Hat 3.0.5-17)
Maven home: /usr/share/maven
Java version: 1.8.0_151, vendor: Oracle Corporation
Java home: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.151-5.b12.el7_4.x86_64/jre
Default locale: zh_CN, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-327.el7.x86_64", arch: "amd64", family: "unix"
新构建maven项目 名称为mybank
接着
下面git源码和add密码 root:123456
增加构建后操作
其中的num镜像数要多一个,要多tag一个有5000/mybank-tomcat辨识的镜像,第一次打包,要tag一个,以便于打包后是准确的v1版本
cd /var/lib/jenkins/workspace/mybank/
num=`docker images|grep "5000/mybank-tomcat"|wc -l`
docker build -t mybank-tomcat:v$num .
docker tag mybank-tomcat:v$num 192.168.1.7:5000/mybank-tomcat:v$num
docker push 192.168.1.7:5000/mybank-tomcat:v$num
docker run -d -p 8080:8080 mybank-tomcat:v$num
配置完成后保存
执行构建;
执行构建前,去服务器修改maven仓库路径 最好阿里云的镜像,增加如下配置,飞速下载
vi /etc/maven/settings.xml
1 2 3 4 5 6 | <mirror> < id >alimaven< /id > <mirrorOf>central< /mirrorOf > <name>aliyun maven< /name > <url>http: //maven .aliyun.com /nexus/content/repositories/central/ < /url > < /mirror > |
构建成功并做成镜像后上传到docker仓库,最后启动镜像服务,日志截图
在服务器上查看生成情况
[root@gluster01 conf]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
192.168.1.7:5000/mybank-tomcat v1 783463c71415 5 hours ago 150 MB
mybank-tomcat v1 783463c71415 5 hours ago 150 MB
[root@gluster01 conf]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
50769a5283c8 mybank-tomcat:v1 "catalina.sh run" 5 hours ago Up 5 hours 0.0.0.0:8080->8080/tcp sleepy_kowalevski
8fb688b7453d registry:latest "/entrypoint.sh /etc/" 2 days ago Up 6 hours 0.0.0.0:5000->5000/tcp registry
镜像服务正常,用浏览器访问服务正常
到此 一般的基础流程已经完成
如有兴趣可在git中添加秘钥认证
本文转自super李导51CTO博客,原文链接:http://blog.51cto.com/superleedo/2057841 ,如需转载请自行联系原作者

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
话容器虚拟技术
传统虚拟化技术与容器技术对比 1、传统的虚拟化技术 传统的虚拟化技术会在已有主机的基础上创建多个虚拟主机,然后在每个虚拟主机上安装独立的操作系统,并由虚拟主机的内核空间和用户空间来运行应用程序 2、docker容器技术 使用主机的硬件,在硬件之上安装一个操作系统,使用相同的内核。然后将用户空间进行隔离,从而分成多个用户空间,基于一个内核来运行。因为容器使用这种隔离用户空间的方式,使得一样可以提供多个应用程序的环境(而应用程序的环境我们称之为容器),所以可以理解为是用户空间的虚拟化技术 容器拥有更高的资源使用效率,因为其无需为每个应用分配一个独立的操作系统,可以使得应用,资源消耗较小,迁移与创建的速度更小。 区别:kvm,xen隔离的非常好,因为他们有自己的内核空间和用户空间,但是容器技术的话,整个容器只有一个内核,不同的是,各虚拟机之间隔离开的仅仅是用户空间。 容器所用到的核心技术 NameSpace:名称空间(资源隔离机制) 在内核级别:完成环境隔离的方法(类似于chroot机制) PID NameSapce Linux 2.6.24 PID隔离,隔离PID号,能够在每一个隔离出来的...
- 下一篇
企业私有云应用之使用OZ制作openstack镜像
最近工作忙,好久没写博客,现在正好有空介绍一下我这里使用私有云的经验。 现在分享一下如何使用oz自动化制作openstack镜像,下面有我自己制作centos 6.4 6.5 6.7 7.2与ubuntu 12.04.5与14.04.4的模板,模板也存放到github里,地址是https://github.com/dl528888/oz_create_openstack_image_templates。 之前使用镜像要不使用别人做好的,要不是自己制作,但很麻烦,现在使用oz可以简化操作,定制一个模板(类似cobbler)的就可以自动化制作了,十分方便。 官方地址是https://github.com/clalancette/oz/ 下面是介绍如何安装 1、安装epel源 1 2 rpm-ivhhttp: //mirrors .sohu.com /fedora-epel/6/x86_64/epel-release-6-8 .noarch.rpm yum install -yoz 如果还是没有生效,可以使用下面的配置在安装 1 2 3 4 5 6 7 8 9 [epel] name=Ext...
相关文章
文章评论
共有0条评论来说两句吧...