在学习本篇文章的时候,可以去看看jenkins官网的文档,jenkins官网支持中文,观看十分便捷
此教程使用的是gitee+docker+jenkins的部署方式,gitlab与github异曲同工,还有就是我目前写jenkins的教程已经更新了两期,关于插件啥的安装都不多详细的讲解了,但用到的旧知识点我也会简单讲解一下,新的知识点我也都会讲到,只是需要pipeline代码的小伙伴,直接拉到教程的最后
jenkins使用docker安装保姆级教程(面向小白教程,最新最全,全图文)2022-8-1,不会docker也没关系
使用jenkins+gitee创建docker镜像并运行
可以看见啊,比起自由风格的软件项目,这个项目是非常的简单
我在之前的教程中已经详细的讲解了,这里都不多加赘述了
配置一个密码
在gitee中连接
pipeline {
agent any
stages {
stage('Hello') {
steps {
echo 'Hello World'
}
}
// 这里的hello2 是我加的,就是说明,这是stages下的第二个任务 ,就是在pipeline中加单行注释 用 // 就行
stage('Hello2') {
steps {
echo 'Hello World'
}
}
}
}
pipeline
定义一个流水线脚本
agent
指示 Jenkins 为整个流水线分配一个执行器(在 Jenkins 环境中的任何可用代理/节点上)和工作区。
stages
全部的工作都在这里执行
stage
每个工作开始
steps
jenkinsfile 声明式脚本往这里面写
echo
写一个简单的字符串到控制台输出。
在下面我们可以看见执行了两个 hello world ,这就是我们执行脚本得到的结果
pipeline {
agent any
stages {
stage('拉取代码') {
steps {
echo '拉取成功'
}
}
stage('执行构建') {
steps {
echo '构建完成'
}
}
stage('把jar包构建为docker镜像并运行') {
steps {
echo '运行成功'
}
}
}
}
yum -y install git
安装;3、我也想不出来了,自己去搜搜)pipeline {
agent any
stages {
stage('拉取代码') {
steps {
git credentialsId: '93f024b8-6456-4c98-a131-9a5ee9f42027', url: 'https://gitee.com/i-dont-recognize-you/school-page.git'
echo '拉取成功'
}
}
stage('执行构建') {
steps {
echo '构建完成'
}
}
stage('把jar包构建为docker镜像并运行') {
steps {
echo '运行成功'
}
}
}
}
tools
就行,注意不要直接cope运行,看看代码中的注解,而且git是我的,你也跑不通pipeline {
agent any
// 看这里,导入maven,名字就是在全局工作配置中配置了的
tools{
maven 'maven_3.8.4'
}
stages {
stage('拉取代码') {
steps {
git credentialsId: '93f024b8-6456-4c98-a131-9a5ee9f42027', url: 'https://gitee.com/i-dont-recognize-you/school-page.git'
echo '拉取成功'
}
}
stage('执行构建') {
steps {
// 看这里哈,先运行一下maven版本,看看maven是否配置好了, sh 是指 执行shell脚本
sh "mvn --version"
// 如果maven可以运行,那么执行以下代码,这里需要注意一下,pom.xml文件是否在你创建的任务目录下
// sh "mvn clean package"
echo '构建完成'
}
}
stage('把jar包构建为docker镜像并运行') {
steps {
echo '运行成功'
}
}
}
}
sh "mvn clean package"
就行如果还有多一层目录才有pom.xml,那你举一反三啊,在使用sh "mvn clean package"
命令打包之前执行sh "cd 目录"
不就可以了[root@instance-3806mxkl ~]# cd /data/jenkins_home/workspace/test2
[root@instance-3806mxkl test2]# ls
Dockerfile LICENSE pom.xml src target
pipeline {
agent any
tools{
maven 'maven_3.8.4'
}
stages {
stage('拉取代码') {
steps {
git credentialsId: '93f024b8-6456-4c98-a131-9a5ee9f42027', url: 'https://gitee.com/i-dont-recognize-you/school-page.git'
echo '拉取成功'
}
}
stage('执行构建') {
steps {
// sh "mvn --version"
sh "mvn clean package"
echo '构建完成'
}
}
stage('把jar包构建为docker镜像并运行') {
steps {
sh '''#!/bin/bash
# 服务名称
SERVER_NAME=test2
# 源jar名称,mvn打包之后,target目录下的jar包名称
JAR_NAME= "School-0.0.1-SNAPSHOT"
# jenkins下的目录
JENKINS_HOME= "/var/jenkins_home/workspace/test2"
# 等待三秒
echo sleep 3s
sleep 1
echo sleep 2s
sleep 1
echo sleep 1s
sleep 1
echo "结束进程完成"
# JENKINS_HOME
cd /var/jenkins_home/workspace/test2/target
# JENKINS_HOME
cp /var/jenkins_home/workspace/test2/Dockerfile /var/jenkins_home/workspace/test2/target
# 修改文件权限 JAR_NAME
chmod 755 School-0.0.1-SNAPSHOT.jar
echo "看看docker能不能用"
docker -v
echo "停止容器"
# 停止容器
docker stop test2
echo "删除容器"
# 删除容器
docker rm test2
echo "删除镜像"
# 删除镜像
docker rmi test2
echo "打包镜像"
# 打包镜像
docker build -t test2 -f Dockerfile .
echo "运行镜像"
# 运行镜像
docker run -d -p 9999:9600 --name test2 test2
'''
echo '运行成功'
}
}
}
}
pipeline {
agent any
tools{
maven 'maven_3.8.4'
}
stages {
stage('拉取代码') {
steps {
git credentialsId: '93f024b8-6456-4c98-a131-9a5ee9f42027', url: 'https://gitee.com/i-dont-recognize-you/school-page.git'
echo '拉取成功'
}
}
stage('执行构建') {
steps {
// sh "mvn --version"
sh "mvn clean package"
echo '构建完成'
}
}
stage('把jar包构建为docker镜像并运行') {
steps {
sshPublisher(publishers: [sshPublisherDesc(configName: 'test', transfers: [sshTransfer(cleanRemote: false, excludes: '', execCommand: '', execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: '/', remoteDirectorySDF: false, removePrefix: '', sourceFiles: '**/*.jar'), sshTransfer(cleanRemote: false, excludes: '', execCommand: '''docker stop test2
docker rm test2
docker rmi test2
docker build -t test2 -f Dockerfile .
docker run -d -p 9999:9600 --name test2 test2''', execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: '/', remoteDirectorySDF: false, removePrefix: '', sourceFiles: 'test2/Dockerfile')], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: false)])
echo '运行成功'
}
}
}
}
pipeline {
agent any
tools{
maven 'maven_3.8.4'
}
stages {
stage('拉取代码') {
steps {
git credentialsId: '93f024b8-6456-4c98-a131-9a5ee9f42027', url: 'https://gitee.com/i-dont-recognize-you/school-page.git'
echo '拉取成功'
}
}
stage('执行构建') {
steps {
// sh "mvn --version"
sh "mvn clean package"
echo '构建完成'
}
}
stage('把jar包构建为docker镜像并运行') {
steps {
sh '''#!/bin/bash
# 服务名称
SERVER_NAME=test2
# 源jar名称,mvn打包之后,target目录下的jar包名称
JAR_NAME= "School-0.0.1-SNAPSHOT"
# jenkins下的目录
JENKINS_HOME= "/var/jenkins_home/workspace/test2"
# 等待三秒
echo sleep 3s
sleep 1
echo sleep 2s
sleep 1
echo sleep 1s
sleep 1
echo "结束进程完成"
# JENKINS_HOME
cd /var/jenkins_home/workspace/test2/target
# JENKINS_HOME
cp /var/jenkins_home/workspace/test2/Dockerfile /var/jenkins_home/workspace/test2/target
# 修改文件权限 JAR_NAME
chmod 755 School-0.0.1-SNAPSHOT.jar
echo "看看docker能不能用"
docker -v
echo "停止容器"
# 停止容器
docker stop test2
echo "删除容器"
# 删除容器
docker rm test2
echo "删除镜像"
# 删除镜像
docker rmi test2
echo "打包镜像"
# 打包镜像
docker build -t test2 -f Dockerfile .
echo "运行镜像"
# 运行镜像
docker run -d -p 9999:9600 --name test2 test2
'''
echo '运行成功'
}
}
}
}
pipeline {
agent any
tools{
maven 'maven_3.8.4'
}
stages {
stage('拉取代码') {
steps {
git credentialsId: '93f024b8-6456-4c98-a131-9a5ee9f42027', url: 'https://gitee.com/i-dont-recognize-you/school-page.git'
echo '拉取成功'
}
}
stage('执行构建') {
steps {
// sh "mvn --version"
sh "mvn clean package"
echo '构建完成'
}
}
stage('把jar包构建为docker镜像并运行') {
steps {
sh '''#!/bin/bash
# 源jar名称,mvn打包之后,target目录下的jar包名称
JAR_NAME=School*
# jenkins下的目录
JENKINS_HOME=/var/jenkins_home/workspace/test2
cd $JENKINS_HOME/target
cp $JENKINS_HOME/Dockerfile $JENKINS_HOME/target
# 修改文件权限 JAR_NAME
chmod 755 $JAR_NAME.jar
echo "停止容器"
docker stop $test2
echo "删除容器"
docker rm $test2
echo "删除镜像"
docker rmi $test2
echo "打包镜像"
docker build -t $test2:$tag .
echo "运行镜像"
docker run -d -p 9999:9600 --name $test2 $test2:$tag
'''
echo '运行成功'
}
}
}
}
CICD与DevOps
jenkins使用docker安装保姆级教程(面向小白教程,最新最全,全图文)2022-8-1,不会docker也没关系
使用jenkins+gitee创建docker镜像并运行
27-使用pipeline自动打包Docker镜像_哔哩哔哩_bilibili
DevOps最新教程2022版 目前最好的DevOps课程
jenkins中文文档