关键词:
Jenkins与Docker的自动化CI/CD流水线实战标签(空格分隔): docker的部分
- 一:什么是CI/CD
- 二: 发布流程设计
- 三:部署Git仓库并上传测试代码
一:什么是CI/CD
持续集成(Continuous Integration,CI):代码合并、构建、部署、测试都在一起,不断地执行这个过程,并对结果反馈。
持续部署(Continuous Deployment,CD):部署到测试环境、预生产环境、生产环境。
持续交付(Continuous Delivery,CD):将最终产品发布到生产环境,给用户使用。
CI/CD 的 流水线特点:
高效的CI/CD环境可以获得:
? 及时发现问题
? 大幅度减少故障率
? 加快迭代速度
? 减少时间成本
二:发布流程设计
三:部署gitlab 并上传代码
参照文档:https://blog.51cto.com/flyfish225/2145495
在node05.flyfish 上面部署gitlab
Git global setup
git config --global user.name "flyfish"
git config --global user.email "yangyangsirit@163.com"
Create a new repository
git clone git@node05.flyfish:flyfish/java-project.git
cd java-project
touch README.md
git add README.md
git commit -m "add README"
git push -u origin master
Push an existing folder
cd existing_folder
git init
git remote add origin git@node05.flyfish:flyfish/java-project.git
git add .
git commit -m "Initial commit"
git push -u origin master
Push an existing Git repository
cd existing_repo
git remote rename origin old-origin
git remote add origin git@node05.flyfish:flyfish/java-project.git
git push -u origin --all
git push -u origin --tags
四: 部署jenkins
在node06.flyfish 上面配置jenkins
tar -zxvf apache-tomcat-8.5.54.tar.gz
mv apache-tomcat-8.5.54 /usr/local/tomcat
cd /usr/local/tomcat/conf
vim context.xml
---
在tomcat的/conf/context.xml中的<Context>中添加
<!--这里单位是 KB-->
<Resources cachingAllowed="true" cacheMaxSize="100000" />
---
rm -rf /usr/local/tomcat/webapps/*
mv jenkins.war /usr/local/tomcat/webapps/jenkins.war
cd /usr/local/tomcat/bin/
./startup.sh
http://192.168.100.16:8080/jenkins
jenkins 安装插件
更换下载安装源
https://updates.jenkins-zh.cn/update-center.json。
装一个Pipeline
创建 一个从节点
创建任务
安装maven
node01.flyfish
tar -zxvf apache-maven-3.5.0-bin.tar.gz
mv apache-maven-3.5.0 /usr/local/maven
vim /etc/profile
---
export MAVEN_HOME=/usr/local/maven
export CLASSPATH=.:$MAVEN_HOME/jre/lib:$MAVEN_HOME/lib:$MAVEN_HOME/lib/tools.jar
PATH=$PATH:$HOME/bin:$MAVEN_HOME/bin:
---
配置maven 的 下载依赖包为阿里云的源
cd /usr/local/maven/conf
vim settings.xml
在<mirrors>.....<mirrors> 之间 加上 阿里云的源
-----
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
----
mvn -version
无密码登录下载 代码
cd .ssh/
ssh-copy-id git@192.168.100.15
pipline 流水线语法:
node ("jenkins-slave-100-11") // 指定Slave标签
// 拉取代码
stage(‘Git Checkout‘)
git credentialsId: ‘71eb6de5-abea-4416-a3ef-753efcdcaa98‘, url: ‘http://node05.flyfish/flyfish/java-project.git‘ (这个地方需要用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=192.168.100.16/project/java-project:$Branch
cat > Dockerfile << EOF
FROM 192.168.100.16/library/tomcat:v1
RUN rm -rf /usr/local/tomcat/webapps/ROOT.war
COPY target/*.war /usr/local/tomcat/webapps/ROOT.war
CMD ["catalina.sh", "run"]
EOF
docker build -t $REPOSITORY .
docker login -u flyfish -p Flyfish225 192.168.100.16
docker push $REPOSITORY
‘‘‘
// 部署到Docker主机
stage(‘Deploy to Docker‘)
sh ‘‘‘
REPOSITORY=192.168.100.16/project/java-project:$Branch
docker rm -f java-project |true
docker image rm $REPOSITORY |true
docker login -u flyfish -p Flyfish225 192.168.100.16
docker container run -d --name java-project -p 89:8080 $REPOSITORY
‘‘‘
访问项目
docker与jenkins的自动化ci/cd流水线实战(svn)
准备安装完成以下环境:1、svn2、jdk3、maven4、tomcat5、jenkins项目代码测试(php/java):https://github.com/lizhenliang配置svn1、查看结构trunk:主干分支branches:其他分支tags:打标记将代码最终打到tags目录下,打成版本号标记,然后再jenk... 查看详情
ci/cd——构建企业级docker+jenkins+git+harbor流水线自动化持续集成持续发布平台(代码片段)
构建企业级Docker+Jenkins+Git+Harbor流水线自动化持续集成持续发布平台CI/CD是什么?持续集成(CI)/持续交付(CD)的优势自动化部署流程图GitGithubGitlab的区别前言:一些自己想说的话部署Docker+Jenkins+Git+Harbor流水... 查看详情
ci/cd——构建企业级docker+jenkins+git+harbor流水线自动化持续集成持续发布平台(代码片段)
构建企业级Docker+Jenkins+Git+Harbor流水线自动化持续集成持续发布平台CI/CD是什么?持续集成(CI)/持续交付(CD)的优势自动化部署流程图GitGithubGitlab的区别前言:一些自己想说的话部署Docker+Jenkins+Git+Harbor流水... 查看详情
jenkins与docker的自动化ci/cd实战(代码片段)
一、发布流程设计工作流程:开发人员提交代码到Git版本仓库;Jenkins人工/定时触发项目构建;Jenkins拉取代码、代码编码、打包镜像、推送到镜像仓库;Jenkins在Docker主机创建容器并发布。环境规划如下:角色IPGit/Registry192.168.56.1... 查看详情
jenkins与docker的自动化ci/cd实战(代码片段)
...续部署、交付(CD)。本文基于Jenkins+Docker+Git实现一套CI自动化发布流程。一、发布流程设计工作流程:开发人员提交代码到Git版本仓库;Jenkins人工/定时触发项目构建;Jenkins拉取代码、代码编码、打包镜像、推送到镜像仓库;Je... 查看详情
ci与cd之docker上安装jenkins(代码片段)
...步的使用,这也是持续集成的目的,CI是属于开发人员的自动化流程。 CD:持续交付(ContinuousDelivery)和持续部署(ContinuousDeployment),这里查阅了一些资料,并简单总结了一下: 1.持续交付意味着所有的变更都可以随时交... 查看详情
ci与cd之docker上安装jenkins(代码片段)
一.CI,CD,Jenkins的介绍CI:持续集成(Continuousintegration,简称CI),在传统的软件开发环境中,有集成,但是没有持续集成这种说法,长时间的分支与主干脱离,导致分支与主干可能存在较大偏差,在集成代码的时候可能需要花费数... 查看详情
实践:基于azure部署jenkins服务并开发mern应用的ci/cd构建管道
...耗时的过程,有时会导致错误。因此,我们需要以持续和自动化的方式执行此操作——这就是您将在本文中学到的内容。我们将讨论如何通过使用Jenkins设置CI/CD管道来改进MERN(MongoDB、Express、React和NodeJs)应用程序开发过程。您... 查看详情
docker——jenkins+git+registry构建自动化持续集成环境(ci/cd)(代码片段)
...部署、交付(CD)。本文基于Jenkins+Docker+GitSvn实现一套CI自动化发布流程,同时支持撤回。 一、发布流程设计工作流程:开发人员提交代码到Git或Svn版本仓库;Jenkins人工/定时触发项目构建;Jenkins拉取代码、代码编码、... 查看详情
ci/cd技术专题「jenkins实战系列」jenkins+pipeline构建自动化部署(代码片段)
...ipeline(流水线技术),那为什么要用Pipeline呢?实现自动化构建,其中Pipeline能够将以前project中的配置信息以steps的方式放在一个脚本里,将原本独立运行于单个或者多个节点的任务连接起来,实现单个任务难以... 查看详情
通过jenkins与docker构建ci/cd基础架构(代码片段)
###前言提到容器平台,最早接触的便是LXC(LinuxContainer),是2010年刚刚接触虚拟化平台的时候,当时开源解决方案是xen的天下(后来KVM才后来者居上),且性能各方面都不弱,价值当时还不是移动互联网时代,业务量远远没有那么... 查看详情
ci/cd之jenkins(代码片段)
jenkinsCI/CD简介jenkins简介jenkins安装安装jenkins插件安装中文插件安装流水线插件安装gitlab插件jenkins和gitlab联动jenkins轮询检查gitlab代码变更使用webhook实时检查gitlab代码变更推送dockerfile文件自动构建镜像新增agent节点jenkins用户管理CI... 查看详情
ci/cd之jenkins(代码片段)
jenkinsCI/CD简介jenkins简介jenkins安装安装jenkins插件安装中文插件安装流水线插件安装gitlab插件jenkins和gitlab联动jenkins轮询检查gitlab代码变更使用webhook实时检查gitlab代码变更推送dockerfile文件自动构建镜像新增agent节点jenkins用户管理CI... 查看详情
为了实现ci/cd,先来定制一个docker镜像实战精华篇(代码片段)
...发布,同时,项目中已经采用了云厂商提供的CI/CD自动化发布流水线。因此,为配合CI/CD操作,需要先针对项目构建一些发布的脚本,通过脚本来自动化操作Docker镜像定制、Docker的启动和停止。在阅读和实践本... 查看详情
为了实现ci/cd,先来定制一个docker镜像实战精华篇(代码片段)
...发布,同时,项目中已经采用了云厂商提供的CI/CD自动化发布流水线。因此,为配合CI/CD操作,需要先针对项目构建一些发布的脚本,通过脚本来自动化操作Docker镜像定制、Docker的启动和停止。在阅读和实践本... 查看详情
为了实现ci/cd,先来定制一个docker镜像实战精华篇(代码片段)
...发布,同时,项目中已经采用了云厂商提供的CI/CD自动化发布流水线。因此,为配合CI/CD操作,需要先针对项目构建一些发布的脚本,通过脚本来自动化操作Docker镜像定制、Docker的启动和停止。在阅读和实践本... 查看详情
kubernetes基于jenkinsspinnaker的ci/cd实践一增加制品镜像扫描(代码片段)
前言:早期jenkins承担了kubernetes中的ci/cd全部功能JenkinsPipeline演进,这里准备将cd持续集成拆分出来到spinnaker!当然了正常的思路应该是将jenkinsspinnaker的用户账号先打通集成ldap.spinnaker账号系统已经集成ldap.jenkins之前也做过相关... 查看详情
ci/cd的实践
...是命令使用socket与docker的守护进程进行通信,我们需要将jenkins添加到docker的用户组,才能正常执行docker命令NODE服务器上生成把公钥添加在到git,私钥添加到jenkins源码管理本地文件添加DockerFile和nginx配置构建脚本然后构建生成一个... 查看详情