一文完成Jenkins+Docker+Git(多分支构建)打包、部署,实现可持续化集成

这篇具有很好参考价值的文章主要介绍了一文完成Jenkins+Docker+Git(多分支构建)打包、部署,实现可持续化集成。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Jenkins简介

官网:Jenkins官网

参考:Jenkins简介

什么是Jenkins?

  1. Jenkins是一个开源软件项目,起源于Hudson(Hudson是商用的),是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件项目可以进行持续集成
  2. 可在Tomcat等流行的servlet容器中运行,也可独立运行。
  3. 提供友好操作界面的持续集成(CI)工具
  4. 它用于实时测试和报告较大代码库中的孤立更改。
  5. Jenkins软件使开发人员能够快速找到并解决代码库中的缺陷,并自动进行构建测试。

其他CI工具

  • Jenkins
  • TeamCity
  • Travis
  • CIGo
  • CDBamboo
  • GitLabCI
  • CircleCI
  • Codeship

什么是持续集成

CI(Continuous integration,中文意思是持续集成)是一种软件开发实践。持续集成强调开发人员提交了新代码之后,立刻进行构建、(单元)测试。根据测试结果,我们可以确定新代码和原有代码能否正确地集成在一起。借用网络图片对CI加以理解。

jenkins打包,发布,部署,运维,jenkins,docker,git,运维开发

CD(Continuous Delivery, 中文意思持续交付)是在持续集成的基础上,将集成后的代码部署到更贴近真实运行环境(类生产环境)中。比如,我们完成单元测试后,可以把代码部署到连接数据库的Staging环境中更多的测试。如果代码没有问题,可以继续手动部署到生产环境。下图反应的是CI/CD 的大概工作模式。

jenkins打包,发布,部署,运维,jenkins,docker,git,运维开发

Jenkins 状态

  • Successful蓝色:构建完成,并且被认为是稳定的。
  • Unstable黄色:构建完成,但被认为是不稳定的。
  • Failed红色:构建失败。
  • Disable灰色:构建已禁用

构建稳定性

  • 晴转多云
  • 多云
  • 小雨
  • 雷阵雨

安装Jenkins

基于Linux

  1. 下载 Jenkins的war包

    https://www.jenkins.io/zh/download/ # 中文
    https://www.jenkins.io/download/ # 英文

  2. 打开网站后,点击下载war包

    jenkins打包,发布,部署,运维,jenkins,docker,git,运维开发

  3. 下载完成后,通过ftp工具上传到服务器

  4. 设置Jenkins环境变量

    1. 打开环境变量配置文件

      vim /etc/profile
      
    2. 设置JENKINS_HOME

      # Jenkins 环境变量配置
      export JENKINS_HOME=/environment/jenkins/jenkins_home
      
    3. 重载文件

      source /etc/profile
      
  5. cd到war的文件目录下,创建 jenkins.log文件存储日志,然后运行命令启动war包

    nohup java -jar jenkins.war -httpPort=8080 >jenkins.log 2>&1 &
    
  6. 启动完成后,浏览器输入ip+8080端口,如下:

    jenkins打包,发布,部署,运维,jenkins,docker,git,运维开发

  7. 为了保证安全,Jenkins需要我们到图中红色的目录复制默认超级管理员密码,找到目录中的文件复制即可,或通过查看日志获取

  8. 然后点击继续并等待一段时间后,如图,这里是让我们安装插件,点击左侧的按钮安装Jenkins推荐安装的插件即可(如果页面加载不出可以反复加载重试)。

    jenkins打包,发布,部署,运维,jenkins,docker,git,运维开发

    jenkins打包,发布,部署,运维,jenkins,docker,git,运维开发

  9. 插件下载完成后,会提示你创建一个管理用户,创建即可。

    jenkins打包,发布,部署,运维,jenkins,docker,git,运维开发

  10. 如图,则表示安装成功了!(版本不同,页面ui不同)

jenkins打包,发布,部署,运维,jenkins,docker,git,运维开发

基于Docker

不推荐docker命令启动,会有各种各样的问题(重启Jenkins,容器直接挂了,且容器日志没有任何报错信息),但是问了运维同事说使用 docker-compose 启动比较稳定,所以奉上 docker-compose 的启动命令。

docker命令启动
  1. 拉取镜像

    docker pull jenkins/jenkins:latest
    
  2. 启动容器

    docker run --name myjenkins -d -p 8080:8080 -p 50000:50000 -u 0 -v /tmp/jenkins_home:/var/jenkins_home -v /etc/localtime:/etc/localtime:ro jenkins/jenkins:latest
    
  3. 容器启动后,参考上面基于linux安装Jenkins即可,从 浏览器输入ip+8080端口 开始。

docker-compose 启动
version: "3"
services:
  app:
    image: jenkins/jenkins
    container_name: jenkins
    restart: always
    environment:
      TZ: Asia/Shanghai
    volumes:
      - ./jenkins_home:/var/jenkins_home
    ports:
      - "8080:8080"
      - "50000:50000"
docker-compose up -d

安装时遇到的坑

中文只翻译一半

jenkins打包,发布,部署,运维,jenkins,docker,git,运维开发

参考:Jenkins 中文设置

配置打包环境

安装JDK

下载jdk

官网:Linux:JDK1.8

jenkins打包,发布,部署,运维,jenkins,docker,git,运维开发

下载完成后,通过ftp工具将安装包上传到服务器,然后进入容器内部创建一个文件夹用来放置安装包

  1. 进入Jenkins容器内部(Jenkins非Docker部署忽略此步)

    docker exec -it -u root myjenkins /bin/bash
    
  2. 进入容器后创建文件夹,创建完成后退出容器

    cd /tmp 	# 切换目录
    mkdir jdk 	# 创建文件夹
    ls 			# 查看是否创建成功
    exit 		# 退出容器(Jenkins非Docker部署忽略此步)
    
  3. 将服务器的文件复制到容器内部(Jenkins非Docker部署忽略此步)

    docker cp /tmp/JDK/jdk-8u341-linux-x64.tar.gz myjenkins:/tmp/jdk
    

    命令解释:docker cp 本地文件路径 容器名称:容器路径

解压

  1. 进入Jenkins容器内部(Jenkins非Docker部署忽略此步)

    docker exec -it -u root myjenkins /bin/bash
    
  2. 切换目录

    cd /tmp/jdk
    
  3. 查看是否复制成功

    ls
    
  4. 解压:

    tar -zxvf jdk-8u341-linux-x64.tar.gz
    
  5. 删除压缩包:

    rm -f jdk-8u341-linux-x64.tar.gz 
    

配置jdk环境变量

  1. 打开linux环境变量配置文件

    vim /etc/profile
    

    如果提示没有vim命令,可参考:Docker容器安装Vim 或依次执行如下命令:

    apt-get update
    apt-get install -y libtinfo5
    apt-get install -y vim
    
  2. 进入profile文件后,按i在最后一行编辑如下:

    export JAVA_HOME=/tmp/jdk/jdk1.8.0_341 
    
    export JRE_HOME=${JAVA_HOME}/jre
    
    export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
    
    export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
    
    export PATH=$PATH:${JAVA_PATH}
    
  3. 按esc输入:wq保存退出

  4. 重新加载配置文件

    source /etc/profile
    
  5. 输入 java -version 命令查看是否安装成功,如图则成功

    jenkins打包,发布,部署,运维,jenkins,docker,git,运维开发

安装Maven

参考:linux 安装 maven

下载maven

官网:Maven下载

jenkins打包,发布,部署,运维,jenkins,docker,git,运维开发

下载完成后,通过ftp工具将安装包上传到服务器,然后进入容器内部创建一个文件夹用来放置安装包

  1. 进入Jenkins容器内部(Jenkins非Docker部署忽略此步)

    docker exec -it -u root myjenkins /bin/bash
    
  2. 创建目录放置压缩包

    cd /tmp 	# 切换目录
    mkdir maven 	# 创建文件夹
    ls 			# 查看是否创建成功
    exit 		# 退出容器(Jenkins非Docker部署忽略此步)
    
  3. 将服务器的文件复制到容器内部(Jenkins非Docker部署忽略此步)

    docker cp /tmp/Maven/apache-maven-3.8.6-bin.tar.gz myjenkins:/tmp/maven
    

    命令解释:docker cp 本地文件路径 容器名称:容器路径

解压

  1. 进入Jenkins容器内部(Jenkins非Docker部署忽略此步)

    docker exec -it -u root myjenkins /bin/bash
    
  2. 查看是否复制成功

    ls
    
  3. 切换目录

    cd /tmp/maven
    
  4. 解压:

    tar -zxvf apache-maven-3.8.6-bin.tar.gz
    
  5. 删除压缩包:

    rm -f apache-maven-3.8.6-bin.tar.gz
    

创建Maven资源库目录

  1. cd 到 maven 的 /conf 目录,然后创建文件夹

    mkdir -p /m2/repository
    
  2. 编辑 settings.xml 文件

    vim settings.xml
    
  3. 将下面内容复制到 settings.xml 文件中,复制快捷键"shift + insert"

    <?xml version="1.0" encoding="UTF-8"?>
     
    <settings xmlns="http://maven.apache.org/SETTINGS/1.2.0"
              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
              xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.2.0 https://maven.apache.org/xsd/settings-1.2.0.xsd">
     
      <localRepository>/m2/repository</localRepository>
      
      <pluginGroups>
      </pluginGroups>
     
      <proxies>    
      </proxies>
     
      <servers>
      </servers>
     
      <mirrors>
        <mirror>  
       	  <id>alimaven</id>  
       	  <name>aliyun maven</name>  
    	  <url>http://maven.aliyun.com/nexus/content/groups/public/</url>  
       	  <mirrorOf>central</mirrorOf>          
        </mirror> 
      </mirrors>
     
      <profiles>
      </profiles>
    </settings>
    

配置Maven环境变量

  1. 打开linux环境变量配置文件

    vim /etc/profile
    
  2. 将下面内容复制到 profile 文件最下面

    MAVEN_HOME=/environment/maven/apache-maven-3.8.6
    
    PATH=$MAVEN_HOME/bin:$PATH
    
    export MAVEN_HOME PATH
    
  3. 按esc输入:wq保存退出

  4. 重新加载配置文件

    source /etc/profile
    
  5. 测试是否安装成功

    mvn -version
    

    jenkins打包,发布,部署,运维,jenkins,docker,git,运维开发

Jenkins配置Maven

  1. 依次点击 系统管理 --> 全局工具配置

    jenkins打包,发布,部署,运维,jenkins,docker,git,运维开发

  2. 找到maven,并输入自己的maven地址,点击应用并保存即可

    jenkins打包,发布,部署,运维,jenkins,docker,git,运维开发

安装Nodejs

参考: Linux下Node.js安装及环境配置

如果是docker部署Jenkins,需要进入Jenkins容器内部操作

docker exec -it -u root myjenkins /bin/bash

下载Nodejs

官网下载nodejs安装包

nodejs官网:下载 | Node.js (nodejs.org)

jenkins打包,发布,部署,运维,jenkins,docker,git,运维开发

在linux中创建一个nodejs的文件夹,通过ftp工具上传到该文件夹

解压

  1. 解压该压缩包

    tar -xvf node-v16.17.0-linux-x64.tar.xz
    
  2. 修改文件名为版本号,便于以后的路径输入

    mv node-v16.17.0-linux-x64.tar.xz v16.17.0
    

配置Nodejs环境变量

  1. 打开环境变量配置文件(可通过 pwd 命令查看当前路径,方便复制当前路径)

    vim /etc/profile
    
  2. 设置 nodejs 环境变量

    # nodejs环境变量配置
    export NODE_HOME=/usr/local/nodejs/v14.17.0
    export PATH=$NODE_HOME/bin:$PATH
    
  3. 重新加载配置文件

    source /etc/profile
    
  4. 测试是否安装成功

    node -v
    

    jenkins打包,发布,部署,运维,jenkins,docker,git,运维开发

npm配置淘宝镜像

npm设置与删除淘宝镜像
 
用淘宝的镜像下载资源 国内的访问速度会比较快
 
一、npm命令:不改变原来的名称,只是换了一个下载资源
 
1.npm设置淘宝镜像
 
npm config set registry https://registry.npm.taobao.org
 
npm config set disturl https://npm.taobao.org/dist
 
2.npm删除淘宝镜像
npm config delete registrynpm config delete disturl

Jenkins配置nodejs

  1. 依次点击 系统管理 --> 全局工具配置

    jenkins打包,发布,部署,运维,jenkins,docker,git,运维开发

  2. 找到nodejs,并输入自己的nodejs地址,点击应用并保存即可

    jenkins打包,发布,部署,运维,jenkins,docker,git,运维开发

Gitee

需要安装好Jenkins和配置好环境才可以进行

Gitee环境准备

安装gitee插件

  1. Jenkins下载 gitee 插件,依次点击 系统管理 --> 插件管理

    jenkins打包,发布,部署,运维,jenkins,docker,git,运维开发

  2. 在可选插件中,搜索 gitee ,选中然后点击 Install without restart

    jenkins打包,发布,部署,运维,jenkins,docker,git,运维开发

  3. 安装完成后,勾选按钮,等待Jenkins重启即可

    jenkins打包,发布,部署,运维,jenkins,docker,git,运维开发

配置gitee

可参考官网配置说明:Jenkins 插件 - Gitee.com

  1. 依次点击 系统管理 --> 系统配置

    jenkins打包,发布,部署,运维,jenkins,docker,git,运维开发

  2. 找到 gitee配置 点击 新增

    jenkins打包,发布,部署,运维,jenkins,docker,git,运维开发

  3. 点击 证书令牌 下面的 添加,然后选择 Jenkins

    jenkins打包,发布,部署,运维,jenkins,docker,git,运维开发

  4. 打开地址( https://gitee.com/profile/personal_access_tokens ),转到gitee

    jenkins打包,发布,部署,运维,jenkins,docker,git,运维开发

  5. 点击生成新令牌

    jenkins打包,发布,部署,运维,jenkins,docker,git,运维开发

  6. 输入gitee密码,然后会生成一个令牌,复制一下,然后填写到Jenkins中

    jenkins打包,发布,部署,运维,jenkins,docker,git,运维开发

    jenkins打包,发布,部署,运维,jenkins,docker,git,运维开发

    jenkins打包,发布,部署,运维,jenkins,docker,git,运维开发

    然后点击添加即可

  7. 测试是否成功,显示成功即可

    jenkins打包,发布,部署,运维,jenkins,docker,git,运维开发

Java项目(后端)

参考博客:使用jenkins+gitee创建docker镜像并运行

需要先完成上面Gitee环境的准备!

项目准备

  1. 在springboot项目里的pom文件,添加maven打包工具

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <excludes>
                        <exclude>
                            <groupId>org.projectlombok</groupId>
                            <artifactId>lombok</artifactId>
                        </exclude>
                    </excludes>
                </configuration>
            </plugin>
        </plugins>
    </build>
    
  2. 在源目录下创建一个Dockerfile文件,文件类型为file,无后缀

    jenkins打包,发布,部署,运维,jenkins,docker,git,运维开发

    在Dockerfile文件中输入如下内容(根据自己的实际情况进行修改):

    # 拉取一个jdk8的镜像
    FROM java:8
    
    # 生成这个镜像的作者
    MAINTAINER xu
    
    # copy宿主机中的jar包到镜像中,并重命名为app.jar
    COPY *.jar app.jar
    
    # 设置服务端口
    CMD ["--server.port=1235"]
    
    # 暴露端口
    EXPOSE 1235
    
    # 启动jar包
    ENTRYPOINT ["java","-jar","app.jar"]
    
  3. 将这些修改提交到git

Jenkins新建任务

  1. 点击Jenkins首页中的 新建任务

    jenkins打包,发布,部署,运维,jenkins,docker,git,运维开发

  2. 选择之前配置的gitee链接

    jenkins打包,发布,部署,运维,jenkins,docker,git,运维开发

  3. 点击确定后如图,依次点击 源码管理 --> git

    jenkins打包,发布,部署,运维,jenkins,docker,git,运维开发

  4. 填写自己的仓库信息

    jenkins打包,发布,部署,运维,jenkins,docker,git,运维开发

    仓库地址获取方法:

    jenkins打包,发布,部署,运维,jenkins,docker,git,运维开发

  5. 输入自己的gitee用户信息,全部输入完成后,点击添加即可

    jenkins打包,发布,部署,运维,jenkins,docker,git,运维开发

  6. 添加完成后,选中刚才添加的账号密码

    jenkins打包,发布,部署,运维,jenkins,docker,git,运维开发

  7. 配置 Gitee webhook(使用Gitee webhook实现上传到git就可以更新,可以理解为钩子函数)

    jenkins打包,发布,部署,运维,jenkins,docker,git,运维开发

  8. Gitee webhook 中拉到最下面,有个 Gitee WebHook 密码 ,点击生成按钮生成Gitee WebHook密码并复制下来

    jenkins打包,发布,部署,运维,jenkins,docker,git,运维开发

  9. 打开gitee中的仓库,找到刚才上面Jenkins绑定的仓库,依次点击 管理 --> WebHook --> 添加webHook

    jenkins打包,发布,部署,运维,jenkins,docker,git,运维开发

  10. 将刚才的密码复制到密码处,上面的url则复制一下Jenkins中如图的url,都复制完成后,点击 添加 按钮

jenkins打包,发布,部署,运维,jenkins,docker,git,运维开发

jenkins打包,发布,部署,运维,jenkins,docker,git,运维开发

  1. 配置maven

    jenkins打包,发布,部署,运维,jenkins,docker,git,运维开发

    jenkins打包,发布,部署,运维,jenkins,docker,git,运维开发

  2. 配置shell脚本,当Jenkins把最新代码从gitee拉取下来之后,进行打包部署等操作

    jenkins打包,发布,部署,运维,jenkins,docker,git,运维开发

  3. 将下面脚本复制进去即可(根据实际情况自己修改)

    jenkins打包,发布,部署,运维,jenkins,docker,git,运维开发

    #!/bin/bash
    
    echo "切换到jar包所在目录~~~~~~"
    cd /environment/jenkins/jenkins_home/workspace/fastapi/target
    
    echo "把文件中的Dockerfile放在跟jar包一个位置,方便我们打成镜像"
    cp /environment/jenkins/jenkins_home/workspace/fastapi/Dockerfile /environment/jenkins/jenkins_home/workspace/fastapi/target
    
    echo "修改jar包权限~~~~~~"
    chmod 777 aifast-0.0.1-SNAPSHOT.jar
    
    
    
    # 容器英文:container,镜像英文:image
    
    echo "看看docker能不能用"
    docker -v
    
    echo "停止容器"
    docker stop fastapicontainer
    
    echo "删除容器"
    docker rm fastapicontainer
    
    echo "删除镜像"
    docker rmi fastapiimage
    
    echo "打包镜像"
    docker build -t fastapiimage -f Dockerfile .
    
    echo "运行镜像"
    docker run -d -p 9876:9876 --name fastapicontainer fastapiimage
    
  4. 点击应用保存即可

  5. Dockerfile与shell脚本的联系

    我们先看shell脚本(这个要根据自己情况改)

    首先我们要先理解这个jenkins是一个docker容器,是与本机隔离的,跑的代码都是在容器中执行的,所以我们之前用maven打包到了 /environment/jenkins/jenkins_home/workspace/gitee/target 这个位置

    使用我们首先要进去这个target文件夹 就是 cd /environment/jenkins/jenkins_home/workspace/gitee/target

    停止容器,删除容器,删除镜像,是为了每次创建的时候,都不占内存,硬盘

    要把dockerfile和jar包放在一个好做成镜像(这里不理解的去学docker),使用复制了一份Dockerfile文件到target文件夹内 cp /environment/jenkins/jenkins_home/workspace/gitee/Dockerfile /environment/jenkins/jenkins_home/workspace/gitee/target

    改一下文件的权限 chmod 755 xiaoyang-0.0.1-SNAPSHOT.jar

    因为在 target 目录下了,而且Dockerfile也拷贝下来了,所以使用Dockerfile打包成镜像 docker build -t testgitee -f Dockerfile .

    运行docker镜像,成为容器

    我们再看dockerfile文件

    Dockerfile文件跟jar包在同一目录 ,扫描target目录下的jar包 复制为 app.jar ,使用 java -jar /app.jar 就可以运行了,并开发端口1235(这个跟springboot开放的端口是一致的)

运行测试

  1. 点击刚才新建的任务

    jenkins打包,发布,部署,运维,jenkins,docker,git,运维开发

  2. 点击 立即构建

    jenkins打包,发布,部署,运维,jenkins,docker,git,运维开发

  3. 点击这个时间处

    jenkins打包,发布,部署,运维,jenkins,docker,git,运维开发

  4. 点击 控制台输出 查看打包日志,日志中有详细的打包部署过程,首次打包可能比较慢,因为maven需要下载项目的依赖包

    jenkins打包,发布,部署,运维,jenkins,docker,git,运维开发

  5. 在日志最下方,出现 Finished: SUCCESS,则为打包成功!

    jenkins打包,发布,部署,运维,jenkins,docker,git,运维开发

Vue项目(前端)

参考:【Jenkins】Docker +Jenkins+vue项目部署

需要先完成上面Gitee环境的准备!

项目准备

在源目录下创建一个Dockerfile文件,内容如下:

# 依赖 nginx 容器
FROM nginx

# 首先删除 nginx default.conf 文件
RUN rm /etc/nginx/conf.d/default.conf

# 用本地的 default.conf 替换 nginx 镜像的默认配置
ADD default.conf /etc/nginx/conf.d/

# 将项目打包后的 dist 目录,拷贝到 default.conf 指定的发布目录
COPY dist/ /usr/share/nginx/html/

Jenkins安装nodejs插件

在Jenkins插件管理中,搜索 nodejs 安装并重启Jenkins即可,安装插件的具体步骤参考上面的内容 Gitee -> Gitee环境准备 --> 安装gitee插件

Jenkins新建任务

  1. 新建一个自由风格的软件项目,依次点击即可

    jenkins打包,发布,部署,运维,jenkins,docker,git,运维开发

    jenkins打包,发布,部署,运维,jenkins,docker,git,运维开发

  2. 选择之前配置的gitee链接

    jenkins打包,发布,部署,运维,jenkins,docker,git,运维开发

  3. 填写仓库信息,认证方式如果没有,可以参考上面java项目的配置方式,之前配置过可以用现成的,所以这里略过了

    jenkins打包,发布,部署,运维,jenkins,docker,git,运维开发

  4. 选择 构建触发器 --> Gitee webhook 触发构建

    jenkins打包,发布,部署,运维,jenkins,docker,git,运维开发

  5. 滑动到Gitee webhook 触发构建最下面生成你的WebHook密码

    jenkins打包,发布,部署,运维,jenkins,docker,git,运维开发

  6. 复制生成的webhook密码,打开gitee仓库,点击 管理 ,找到 WebHook ,点击 添加webhook

  7. 将Jenkins中如图的url以及刚才Jenkins生成的webhook密码复制进去然后点击 添加

    jenkins打包,发布,部署,运维,jenkins,docker,git,运维开发

    jenkins打包,发布,部署,运维,jenkins,docker,git,运维开发

  8. 回到Jenkins,配置nodejs ,点击 环境构建 --> Provide Node & npm bin/ folder to PATH

    jenkins打包,发布,部署,运维,jenkins,docker,git,运维开发

  9. 依次点击

    jenkins打包,发布,部署,运维,jenkins,docker,git,运维开发

  10. 输入框输入脚本,点击应用并保存即可

    #!/bin/bash
    
    echo "切换到项目所在目录"
    cd /environment/jenkins/jenkins_home/workspace/testNodeJsJob
    
    echo "~~~~~~~~~~~~~~~~~~前端开始构建啦~~~~~~~~~~~~~~~~~~"
    
    echo "清理前端缓存~~~~~~"
    npm cache clean --force
    
    echo "删除之前的打包文件~~~~~~"
    echo "rm -rf dist"
    rm -rf dist
    echo "rm -rf node_modules"
    rm -rf node_modules 
    echo "rm -rf package-lock.json"
    rm -rf package-lock.json
    echo "文件删除成功~~~~~~"
    
    # 有时npm install 会出错,可以先运行这个在执行下面的install,参考地址:https://blog.csdn.net/weixin_46900108/article/details/120396662
    # echo "下载依赖包之前执行的install,保险!!"
    # npm install chromedriver --chromedriver_cdnurl=http://cdn.npm.taobao.org/dist/chromedriver
    echo "开始下载依赖包~~~~~~"
    npm install  --force --registry=https://registry.npm.taobao.org  --unsafe-perm
    
    echo "开始构建静态文件~~~~~~"
    npm run build
    
    echo "~~~~~~~~~~~~~~~~~~前端构建完成啦~~~~~~~~~~~~~~~~~~"
    
    echo "给构建好的dist文件权限~~~~~~"
    chmod 777 /environment/jenkins/jenkins_home/workspace/testNodeJsJob/dist
    
    echo "将Dokcerfile复制到dist文件夹下,方便我们打成镜像~~~~~~"
    cp -Rf /environment/jenkins/jenkins_home/workspace/testNodeJsJob/Dockerfile /environment/jenkins/jenkins_home/workspace/testNodeJsJob/dist
    
    
    # 容器英文:container,镜像英文:image
    
    echo "看看docker能不能用"
    docker -v
    
    echo "停止容器"
    docker stop testnodecontainer
    
    echo "删除容器"
    docker rm testnodecontainer
    
    echo "删除镜像"
    docker rmi testnodeimage
    
    echo "打包镜像"
    docker build -t testnodeimage -f Dockerfile .
    
    echo "运行镜像"
    docker run -d -p 1122:1122 --name testnodecontainer testnodeimage
    
#!/bin/bash

# 切换到项目所在目录
cd /environment/jenkins/jenkins_home/workspace/testNodeJsJob

echo "前端开始构建"
# 前端开始构建
npm cache clean --force

rm -rf dist

rm -rf node_modules 

rm -rf package-lock.json

# 有时npm install 会出错,可以先运行这个在执行下面的install
npm install chromedriver --chromedriver_cdnurl=http://cdn.npm.taobao.org/dist/chromedriver

npm install  --force --registry=https://registry.npm.taobao.org  --unsafe-perm

npm run build

echo "前端完成构建"
# 前端完成构建

# 给构建好的dist文件权限
# chmod 777 /environment/jenkins/jenkins_home/workspace/testNodeJsJob/dist

# 将dokcerfile复制到dist文件夹下,方便我们打成镜像
cp -Rf /environment/jenkins/jenkins_home/workspace/testNodeJsJob/Dockerfile /environment/jenkins/jenkins_home/workspace/testNodeJsJob/dist


echo "看看docker能不能用"
docker -v

# 容器:container,镜像:image

echo "停止容器"
# 停止容器
docker stop testnodecontainer

echo "删除容器"
# 删除容器
docker rm testnodecontainer

echo "删除镜像"
# 删除镜像
docker rmi testnodeimage

echo "打包镜像"
# 打包镜像
docker build -t testnodeimage -f Dockerfile .

echo "运行镜像"
# 运行镜像
docker run -d -p 1122:1122 --name testnodecontainer testnodeimage

jenkins多分支构建选择

参考博客:jenkins多分支构建选择

当上面的完成后,单分支部署就完成了,但是因为前面的打包配置中,源码管理 里的 git 下的 Branches to build 我们使用的是默认值 “ */master ” ,这样只能部署master分支,而我们的git不可能只用master分支,后面还会有各种开发分支,因此这里要配置多分支构建

jenkins打包,发布,部署,运维,jenkins,docker,git,运维开发

  1. 安装 Git Parameter 插件,操作步骤和上面安装gitee插件相同

  2. 插件安装完成并重启后,选择我们刚才创建的任务,然后点击 配置

    jenkins打包,发布,部署,运维,jenkins,docker,git,运维开发

  3. 依次点击

    jenkins打包,发布,部署,运维,jenkins,docker,git,运维开发

  4. 配置参数

    jenkins打包,发布,部署,运维,jenkins,docker,git,运维开发

  5. 点击 源码管理 ,输入之前的分支参数名称,注意前面加“$”符

    jenkins打包,发布,部署,运维,jenkins,docker,git,运维开发

  6. 应用并保存,可以看到,这里已经变成 Build with Parameters

    jenkins打包,发布,部署,运维,jenkins,docker,git,运维开发

  7. 点击 Build with Parameters 后,就可以看到我们所有的分支都有了,选择指定分支构建即可

    jenkins打包,发布,部署,运维,jenkins,docker,git,运维开发

对接第三方

钉钉

参考:

  • Jenkins配置钉钉通知
  • 钉钉开放文档 (dingtalk.com)

1、在群聊中添加机器人

  1. 打开一个钉钉群,群设置–>智能群助手

  2. 点击添加机器人

    jenkins打包,发布,部署,运维,jenkins,docker,git,运维开发

    jenkins打包,发布,部署,运维,jenkins,docker,git,运维开发

  3. 选择 自定义机器人 并点击 添加

    jenkins打包,发布,部署,运维,jenkins,docker,git,运维开发

  4. 设置机器人基本信息

    jenkins打包,发布,部署,运维,jenkins,docker,git,运维开发

  5. 点击完成后,如图,复制Webhook,后面需要使用

    jenkins打包,发布,部署,运维,jenkins,docker,git,运维开发

2、钉钉webhook配置

  1. Jenkins安装钉钉插件: DingTalk

    jenkins打包,发布,部署,运维,jenkins,docker,git,运维开发

    注:

    如果Jenkins版本过低,安装最新的Jenkins插件可能会导出出现问题,可以到Jenkins官网进行插件下载

    Jenkins插件:Jenkins Plugins

    选择合适的插件版本后,点击如图下载插件

    jenkins打包,发布,部署,运维,jenkins,docker,git,运维开发

    然后再Jenkins的插件管理中,选择高级,找到 Deploy Plugin

    jenkins打包,发布,部署,运维,jenkins,docker,git,运维开发

  2. 安装插件并重启Jenkins后,依次点击 系统管理 --> 系统配置 ,找到钉钉插件

    jenkins打包,发布,部署,运维,jenkins,docker,git,运维开发

  3. 设置机器人信息

    jenkins打包,发布,部署,运维,jenkins,docker,git,运维开发

  4. 点击测试按钮,测试是否能够成功发送消息,显示测试成功并且钉钉收到消息则为成功

    jenkins打包,发布,部署,运维,jenkins,docker,git,运维开发

3、项目中配置机器人

  1. 随便找一个项目,点击配置

    jenkins打包,发布,部署,运维,jenkins,docker,git,运维开发

  2. 选择想要使用的机器人,并点击高级

    • 勾选atAll:通知群内所有人
    • 指定人:输入框中输入要通知人的手机号(多个手机号之间用逗号或换行分隔)

    jenkins打包,发布,部署,运维,jenkins,docker,git,运维开发

  3. 完成后应用并保存即可,接着去打包测试,这时钉钉群就可以收到消息啦~
    jenkins打包,发布,部署,运维,jenkins,docker,git,运维开发文章来源地址https://www.toymoban.com/news/detail-800420.html

到了这里,关于一文完成Jenkins+Docker+Git(多分支构建)打包、部署,实现可持续化集成的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【jenkins部署】一文弄懂自动打包部署(前后台)

    软件开发中,会分多个环境,开发环境、测试环境、预发布环境、生产环境,软件部署如果是纯人工一个个通过jar的方式, 会有如下问题: 服务器过多,容易出错 修改配置,可能会存在未修改到位的情况 服务器部署权限一般只有开发服务器人才有权限,涉及到服务器的安全

    2024年02月08日
    浏览(52)
  • Jenkins List Git Branches插件 构建选择指定git分支

    List Git Branches Parameter | Jenkins plugin Adds ability to choose from git repository revisions or tags https://plugins.jenkins.io/list-git-branches-parameter/ 1)新建任务  2)新增构建参数  3)选择git仓库 我这里选择gitee,其他类似。仓库如果不是公开的,需要配置key  4)jenkins配置git仓库 5)开始构建 点击

    2024年02月08日
    浏览(57)
  • Jenkins拉取代码构建完成后部署到其他服务器(详解)

    问题描述: 文章介绍了如何在linux从0搭建jenkins平台,并实现获取git上的代码,进行代码的自动化打包部署。 一、检查Java环境 因为jenkins的运行依赖于Java环境,所以我们在进行jenkins搭建时,需要先确保自己的linux有java环境。如果没有请先安装java环境(建议安装java11,因为新

    2024年02月04日
    浏览(49)
  • 将整个Jenkins发布到git,完成Jenkins备份,附上部署教程

    我们的Jenkins一般都是两种部署方式,一种是直接部署到机器上,另一种是部署在docker内,但是不管哪一种部署方式,都依赖于机器的存货性,下面咱这个也相当于一个备份方案吧,可以随便想部署到哪里就部署到哪里。 首先,大家要先了解Jenkins_home 这个目录内具体都代表什

    2023年04月08日
    浏览(42)
  • 项目打包docker镜像 | 上传nexus | jenkins一键构建

      Docker部署项目是指使用Docker容器化技术将应用程序及其依赖项打包成一个独立的、可移植的运行环境,并在各种操作系统和平台上进行部署和运行。   使用Docker的主要原因是解决了应用程序在不同环境中部署和运行的问题。传统上,应用程序在部署时需要考虑操作系统

    2024年02月09日
    浏览(48)
  • Jenkins+Maven+Gitlab+Tomcat 自动化构建打包,部署

    1、安装服务 Jenkins工具、环境、插件配置 全局变量配置 Manage JenkinstoolsJDK 安装 安装插件 Deploy to container 安装此插件,才能将打好的包部署到tomcat上     配置国内mvn源 创建maven项目 1  2   3    4    5    6    7    8     9 10  

    2024年02月05日
    浏览(58)
  • 一文搞懂jenkins安装部署(Docker)

    一、简介: 本文主要记录如何通过docker安装jenkins,并通过jenkins部署项目,最终效果:在jenkins对某个项目点击构建,jenkins就会去gitLab上拉取最新项目的最新代码,然后根据pom.xml文件,把项目打包成jar,并自动把这个最新的jar运行起来,达到一键式构建的目标。 二、操作步骤

    2023年04月25日
    浏览(35)
  • 基于Jenkins自动打包并部署docker环境

    目录 1、安装docker-ce 2、阿里云镜像加速器 3、构建tomcat 基础镜像  4、构建一个Maven项目 实验环境 操作系统 IP地址 主机名 角色 CentOS 7.5 192.168.200.111 git git服务器 CentOS 7.5 192.168.200.112 Jenkins git客户端 jenkins服务器 CentOS 7.5 192.168.200.113 docker web服务器 在192.168.200.113上创建远程目录

    2024年02月11日
    浏览(51)
  • docker-compose 集成Jenkins部署,打包,发布

    需要提前准备的条件 查询linux服务器中jdk,maven,nodejs的路径地址,挂载到jenkins容器的指定路径,如下图: 写法:-服务器路径:容器路径 图片内容说明将服务器中的jdk,maven,nodejs挂载到jenkins容器中 - /root/.ssh:/root/.ssh 为ssh生成的密钥地址!!! 图中可以合并写成 Jenkins需要

    2024年02月04日
    浏览(49)
  • 小白新手一文完成Git+Github/GITEE傻瓜式入门详解部署教程(内含TortoiseGit配置)

    本文创作时版本为 Git-2.41.0,使用目标为笔记存储和代码库,部分公司向使用的设置可能不一样 本文在创作时通过狂神说视频的学习和帮助 版本控制 (Revision control)是一种在开发的过程中用于管理我们对文件、目录或工程等内容的修改历史,方便查看更改历史记录,备份以

    2024年02月04日
    浏览(95)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包