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,效果如下

image.png

按照提示执行

cat /var/lib/jenkins/secrets/initialAdminPassword 得到Administrator password


image.png

接着设置账号密码

比如 admin:admin   root:123456 

image.png

进入主页面

image.png


登陆jenkins, 进入系统管理-插件管理-可选插件 搜索ssh plugin  和  Maven Integration plugin 然后安装, 安装界面选择安装好后重启jenkins

接着进入系统管理--系统设置

image.png

在系统设置中设置ssh

image.png


在上步中Credentials  add 添加用户密码 root :123456

image.png

并接着添加jenkins的url配置

image.png

系统设置的其他项可以保持不动,保存上面的修改


下面进行全局工具配置

image.png


配置其中的 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/

image.png

git的是命令路径

image.png

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"

image.png

新构建maven项目  名称为mybank

接着

image.png

下面git源码和add密码 root:123456

image.png

增加构建后操作

其中的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


image.png


image.png


配置完成后保存

执行构建;

执行构建前,去服务器修改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仓库,最后启动镜像服务,日志截图

image.png

image.png

在服务器上查看生成情况

[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

镜像服务正常,用浏览器访问服务正常

image.png

到此 一般的基础流程已经完成 

如有兴趣可在git中添加秘钥认证





















本文转自super李导51CTO博客,原文链接:http://blog.51cto.com/superleedo/2057841 ,如需转载请自行联系原作者

相关文章
|
监控 jenkins Shell
jenkins结合gitlab实现CI(持续集成)
通过本文的介绍,我们详细了解了如何结合Jenkins和GitLab实现持续集成。从环境准备、插件配置到Pipeline任务创建和CI流程监控,每一步都提供了详细的操作步骤和示例代码。希望本文能帮助开发者快速搭建起高效的CI系统,提高项目开发效率和代码质量。
1689 9
|
Java jenkins 持续交付
Jenkins集成Maven
通过以上步骤,可以在Jenkins中成功集成Maven,实现自动化构建和部署。通过定时构建、SCM轮询等方式,可以确保代码库中的最新变更能够及时构建和测试,提高开发效率和代码质量。这种集成方式在实际项目中具有广泛的应用前景,能够显著提升团队的协作效率。
610 8
|
前端开发 开发工具 git
如何清理 docker 磁盘空间+修改 Gitea 服务器的 Webhook 设置+前端一些好学好用的代码规范-git hook+husky + commitlint
如何清理 docker 磁盘空间+修改 Gitea 服务器的 Webhook 设置+前端一些好学好用的代码规范-git hook+husky + commitlint
399 5
|
Java jenkins 持续交付
Centos7下docker的jenkins下载并配置jdk与maven
通过上述步骤,您将成功在CentOS 7上的Docker容器中部署了Jenkins,并配置好了JDK与Maven,为持续集成和自动化构建打下了坚实基础。
1346 1
|
jenkins Shell 持续交付
Jenkins持续集成GitLab项目 GitLab提交分支后触发Jenkis任务 持续集成 CI/CD 超级详细 超多图(一)
Jenkins持续集成GitLab项目 GitLab提交分支后触发Jenkis任务 持续集成 CI/CD 超级详细 超多图(一)
1094 0
|
jenkins Devops Java
DevOps实践:Jenkins在持续集成与持续部署中的价值
【10月更文挑战第27天】在快速发展的软件开发领域,DevOps实践日益重要。Jenkins作为一款流行的开源自动化服务器,在持续集成(CI)和持续部署(CD)中扮演关键角色。本文通过案例分析,探讨Jenkins在Java项目中的应用,展示其自动化构建、测试和部署的能力,提高开发效率和软件质量。
529 2
|
jenkins 持续交付 开发者
自动化部署:使用Jenkins和Docker实现持续集成与交付
【8月更文挑战第31天】本文旨在为读者揭示如何通过Jenkins和Docker实现自动化部署,从而加速软件开发流程。我们将从基础概念讲起,逐步深入到实际操作,确保即使是初学者也能跟上步伐。文章将提供详细的步骤说明和代码示例,帮助读者理解并应用这些工具来优化他们的工作流程。
|
监控 jenkins Linux
从 Jenkins 持续集成出发:探究如何监控员工电脑屏幕
Jenkins 在企业信息化管理中用于自动化构建、测试和部署,提高开发效率。本文讨论了其重要性,并从技术角度探讨了屏幕监控的可能性,但明确反对非法监控,强调应合法合规地管理企业和尊重员工隐私。
358 12
|
运维 jenkins Java
Jenkins在持续集成与持续部署中的价值
Jenkins在持续集成与持续部署中的价值
|
jenkins Devops 测试技术
DevOps实践:Jenkins在持续集成与持续部署中的价值
【10月更文挑战第26天】随着DevOps理念的普及,Jenkins作为一款开源自动化服务器,在持续集成(CI)与持续部署(CD)中发挥重要作用。本文通过某中型互联网企业的实际案例,展示了Jenkins如何通过自动化构建、持续集成和持续部署,显著提升开发效率、代码质量和软件交付速度,帮助企业解决传统手工操作带来的低效和错误问题。
647 4

热门文章

最新文章