Linux使用docker安装Jenkins 并进行jar包发布 、配置流水线,自定义参数,远程执行shell脚本

 

拉取镜像

docker pull jenkins/jenkins:lts

 

创建docker-compose.yml 文件 (主要习惯 也可以不用这种方式)  Linux安装docker-compose 参考:https://www.cnblogs.com/pxblog/p/15049362.html

version: "2"
services:
  jenkins:
    image: jenkins/jenkins:lts
    container_name: jenkins
    environment:
      # - TZ="Asia/Shanghai"
      - timezone="Asia/Shanghai"
      - JENKINS_JAVA_OPTIONS="-Xms1024m -Xmx2048m -XX:PermSize=256m -XX:MaxPermSize=512m -Duser.timezone=Asia/shanghai -Djava.awt.headless=true"
      - JENKINS_OPTS="--prefix=/jenkins" 
      - JENKINS_ARGS="--prefix=/jenkins"
    privileged: true
    user: root
    volumes:
      - /data/jenkins/home:/var/jenkins_home
      - /etc/localtime:/etc/localtime
    ports:
      - 8500:8080
      - 50000:50000
    restart: on-failure

 

先创建挂载目录,然后执行

docker-compose up -d

-d :表示后台启动  第一次可以不使用 看下启动是否正常

 

 

 启动成功

浏览器访问

http://服务器ip:8500/jenkins

 

 然后查看密码 我的是

 cat /data/jenkins/home/secrets/initialAdminPassword

 

 

 

 安装完成后,这里可以创建,也可以使用默认的admin ,密码就是我们之前/secrets/initialAdminPassword 密钥

 

 

 

 

 

 

配置环境变量

 

 

 

 

 配置环境变量maven  通过把maven包放到挂载目录

 

 

添加全局凭据

 

 

 

 

 

 输入账号密码 id用gitlab

 

 确定之后

开始部署项目

 

 

 

 

 

 脚本说明

node {
        stage('Preparation') { 
          git branch: 'master', credentialsId: 'gitlab', url: 'http://git.demo.com/gitlab/$JOB_NAME.git'
        }
        stage('Maven Build') {
            sh "mvn -v"
            sh "rm -rf /var/maven/repository/com/*"
            sh "rm -rf /var/maven/repository/org/*"
            sh "rm -rf /var/maven/repository/cn/*"
            sh "mvn -Dmaven.test.failure.ignore -DskipTests clean install"
            sh "rm -rf /var/maven/repository/com/*"
            sh "rm -rf /var/maven/repository/org/*"
            sh "rm -rf /var/maven/repository/cn/*"
        }
        stage('Deploy') {
            sh "pwd"
            sh "scp ./target/$JOB_NAME-1.0.0.jar root@192.168.1.101:/home/test/$JOB_NAME"
        }
          def remote = [:]
          remote.name = 'master'
          remote.host = '192.168.1.102'
          remote.user = 'root'
          remote.password = '123456'
          remote.allowAnyHosts = true
        stage('Remote SSH') {
         sshCommand remote: remote, command: "sh /home/test/restart.sh"
        }
    
}

 

 

 $JOB_NAME 就是刚才我们填写的任务的名称,我是test,这里Jenkins会自动帮我们替换

/var/maven/repository  这个是我们maven配置的本地仓库路径,每次都会删掉本地仓库的jar包 重新拉取最新的jar包下来打包 

 

其中在node上也可以自己定义参数

 

 

 

如果已经配置了ssh登录远程服务器,最后一个也可以换成

stage('Remote SSH') {
            sh "ssh root@192.168.1.102 /home/test/restart.sh 可能需要的参数"
        }

 

 

 

配置好了 点击立即构建 就可以查看效果了

 

posted @ 2021-07-23 13:28  yvioo  阅读(718)  评论(0编辑  收藏  举报