目录
1、什么是CICD
2、CI流程
3、部署代码版本仓库
4、上传Java项目代码
5、部署Harbor镜像仓库
6、配置JDK和Maven环境
7、安装Jenkins
8、安装Docker
9、构建Tomcat基础镜像
10、流水线发布测试
持续集成 ci: 代码合并、构建、部署测试都在一起,不断地执行这个过程,并对结果反馈,
持续部署 cd: 部署测试环境,预生产环境,生产环境。
持续交付 cd: 将最终产品发布到生产环境,给用户使用
拉代码
编译
构建镜像
测试
部署
CICD可以获得:
及时发现问题
大幅度减少故障率
加快迭代速度
减少时间成本
useradd git #创建git用户
passwd git #为git创建密码
[git@master ~]$ mkdir tomcat-java-demo.git #创建库目录
cd tomcat-java-demo.git #进入目录
git --bare init #初始化存储库
git clone https://github.com/lizhenliang/tomcat-java-demo #下载一个tomcat存储库
vim .git/config #修改url
url = [email protected]:/home/git/tomcat-java-demo.git
git clone [email protected]:/home/git/tomcat-java-demo.git #通过git下载tomcat这个库
wget https://storage.googleapis.com/harbor-releases/release-1.6.0/harbor-offline-installer-v1.6.3.tgz
tar xf harbor-offline-installer-v1.6.3.tgz
yum -y install python-pip #安装pip
pip install --upgrade pip #升级pip
pip install docker-compose # 安装docker-compose
pip install --upgrade docker-compose #升级docker-compose版本
docker-compose -v #查看版本
cd harbor
vim harbor.cfg
hostname 更换为主机地址
tar xf jdk-8u45-linux-x64.tar.gz
mv jdk1.8.0_45 /usr/local/jdk
tar xf apache-maven-3.5.0-bin.tar.gz
mv apache-maven-3.5.0 /usr/local/maven
mv apache-tomcat-8.0.46 /usr/local/jenkins_tomcat
JAVA_HOME=/usr/local/jdk
PATH=PATH:$JAVA_HOME/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin
export JAVA_HOME PATH
wget http://mirrors.jenkins.io/war-stable/latest/jenkins.war
mv jenkins.war ROOT.war
mv ROOT.war /usr/local/jenkins_tomcat/webapps
启动tomcat
sh /usr/local/jenkins_tomcat/bin/startup.sh
安装Docker ce (官方链接:https://docs.docker.com/install/linux/docker-ce/centos/)
卸载原来的Docker(如果以前没安装过,略过此步骤即可)
$ sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine
devicemapper存储驱动依赖于yum-utils,device-mapper-persistent-dat a,lvm2
$ sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
添加Docker官方yum源
$ sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
安装Docker ce
$ sudo yum install docker-ce
vim /etc/docker/daemon.json #创建加速源和 仓库地址
{"registry-mirrors": ["http://f1361db2.m.daocloud.io"],
"insecure-registries":["164.52.44.42"]
}
systemctl daemon-reload
systemctl restart docker
docker pull tomcat
docker tag tomcat:latest 164.52.44.42/library/tomcat:v1
docker push 164.52.44.42/library/tomcat:v1
安装pipeline 、SCM to job 插件
node { // 指定Slave标签
// 拉取代码
stage('Git Checkout') {
checkout([$class: 'GitSCM', branches: [[name: '${branch}']], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[credentialsId: '15e877e3-3b7e-49e5-aa69-60b0d3c9e59d', url: '[email protected]:/home/git/tomcat-java-demo.git']]])
}
// 代码编译
stage('Maven Build') {
sh '''
export JAVA_HOME=/usr/local/jdk
/usr/local/maven/bin/mvn clean package -Dmaven.test.skip=true
'''
}
// 项目打包到镜像并推送到镜像仓库
stage('Build and Push Image') {
sh '''
REPOSITORY=164.52.44.42/library/tomcat:${branch}
echo '
FROM 164.52.44.42/library/tomcat:v1
COPY target/*.war /usr/local/tomcat/webapps/ROOT.war
' > Dockerfile
docker build -t $REPOSITORY .
docker login -u git -p Git12345 164.52.44.42
docker push $REPOSITORY
'''
}
// 部署到Docker主机
stage('Deploy to Docker') {
sh '''
REPOSITORY=164.52.44.42/library/tomcat:${branch}
docker rm -f java-demo |true
docker image rm $REPOSITORY |true
docker login -u git -p Git12345 164.52.44.42
docker run -d --name java-demo -p 99:8080 $REPOSITORY
'''
}
}