1.安装插件

  • 安装代码托管插件,我用的自己gitee,就安装gitee插件 在这里插入图片描述
  • 还需要安装Rancher的插件用于后续的Rancher自动拉取镜像进行重新创建容器部署
    手动下载插件:Redeploy Rancher2.x Workload ,地址:使用Redeploy Rancher2.x Workload插件时发现的问题解决.
    下载之后手动上传插件。

2.新建项目

  • 选择流水线构建
    在这里插入图片描述

  • 配置钩子触发器
    在这里插入图片描述

  • 生成钩子webhook密码,这个密码要用在git托管仓库处用来生成钩子函数
    在这里插入图片描述

  • 去git仓库处生成钩子函数,url地址在上图的jenkins配中有
    在这里插入图片描述
    在这里插入图片描述
    注意:弄完可以点击测试是否可以发送post测试请求,响应码200就成功,不成功则是可能用了内网的ip,识别不了,可以用ngrox穿透 内网ip端口来代替。

  • 最后生成pipeline语句

pipeline{
    agent any
    stages{
        stage("更新代码"){
           steps{
               echo "pull code"
               git credentialsId: '**************', url: 'https://******/devops.git'
           }
        }
        stage('代码打包') { 
            steps {
                echo "--------------代码打包-----------------"
                sh 'mvn clean package -DskipTests' 
            }
        }
        stage('构建镜像') { 
            steps {
                echo "--------------构建镜像-----------------"
                sh 'docker build -t aopdemo .'
            }
        }
         stage('上传到私服') { 
            steps {
                echo "--------------上传到私服-----------------"
                sh 'docker tag aopdemo 10.10.0.17:5000/aopdemo'
                sh 'docker push 10.10.0.17:5000/aopdemo'
            }
        }
         stage('清理虚悬镜像') { 
            steps {
                echo "--------------清理虚悬镜像-----------------"
                sh 'docker rmi $(docker images -f "dangling=true" -q)'
            }
        }
    }
}

  • git credentialsId---------》可在流水线语法生成处生成,添加的是gitee的账号密码。
    在这里插入图片描述
  • 构建镜像------》在项目文件夹下生成一个Dockfile文件来生成镜像
    在这里插入图片描述

# 镜像出处 WangLin
FROM openjdk:8-jre-alpine

USER root

#中文乱码问题
ENV LC_ALL en_US.UTF-8
ENV LANG en_US.UTF-8

# 时间
ENV TZ=PRC
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

# 将本地项目 jar 包拷贝到 Docker 容器中的位置
COPY target/*.jar /app.jar

# 执行批处理文件
ENTRYPOINT ["java", "-jar", "-Djava.security.egd=file:/dev/./urandom", "app.jar"]

  • 然后保存,点击构建测试是否成功。流水线中用到了上传镜像到私服registry以便rancher进行pull以及创建容器进行构建,私服registry需要docker创建。
  • 私服创建要让访问的ip受信任:
vim /etc/docker/daemon.json
# 加下面的配置
"insecure-registries":["10.10.0.17:5000"]

最后再执行后再创建rancher的执行步骤,添加rancher的秘钥:勾选总是拉取镜像,这样就可以在执行后不用在rancher手动进行拉取镜像并启动新的容器。
在这里插入图片描述

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐