使用jenkins pipeline打包镜像并发布

 创建pipeline 流水线

配置maven

 名称一致

 

使用pipeline 流水线生成工具

比如要拉取代码

 简单测试一段

多行相关联的命令需要写"""  xxx """包含

每次修改完都要批准,不然无法执行

可以使用pwd,ls等命令获取当前路径,文件,以决定文件发送路径和脚本执行怎么写。

复制代码
pipeline {
    agent any

    tools {
        maven "maven3"
    }

    stages {
        stage('Clonecode') {
            steps {
                git credentialsId: '7c6694bb-6a0f-45cf-ae99-a97e465d60e8', url: 'git@192.168.43.112:root/rocketmq.git'
            }
        }
        
        stage('Build') {
            steps {
                sh  "mvn -Dmaven.test.failure.ignore=true clean package"            
} } } }
复制代码

 生成远程传输文件配置

生成备份配置

 总览

复制代码
pipeline {
    agent any

    tools {
        maven "maven3"
    }

    stages {
        stage('Clonecode') {
            steps {
                git credentialsId: '7c6694bb-6a0f-45cf-ae99-a97e465d60e8', url: 'git@192.168.43.112:root/rocketmq.git'
            }
        }
  
                
        stage('bakjar') {
            steps {
               sshPublisher(publishers: [sshPublisherDesc(configName: 'txy', transfers: [sshTransfer(cleanRemote: false, excludes: '', execCommand: 'mv  /data/update/rocketmqconsole/rocketmq-dashboard-1.0.0.jar /data/update/rocketmqconsole/rocketmq-dashboard-1.0.0.jar-`date \'+%Y-%m-%d-%H-%M-%S\'`', execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: '', remoteDirectorySDF: false, removePrefix: '', sourceFiles: '')], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: true)])
            }
        }      
        
        stage('Build') {
            steps {
                sh """
                pwd
                cd   rocketmq
                mvn -Dmaven.test.failure.ignore=true clean package
                """
            }
        }
        
        stage('sendfile') {
            steps {
               sshPublisher(publishers: [sshPublisherDesc(configName: 'txy', transfers: [sshTransfer(cleanRemote: false, excludes: '', execCommand: '', execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: '/data/update/rocketmqconsole', remoteDirectorySDF: false, removePrefix: 'rocketmq/target', sourceFiles: '**/rocketmq-*.jar')], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: true)])
               sshPublisher(publishers: [sshPublisherDesc(configName: 'txy', transfers: [sshTransfer(cleanRemote: false, excludes: '', execCommand: 'bash  /data/update/rocketmqconsole/deploy.sh   deploy', execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: '/data/update/rocketmqconsole', remoteDirectorySDF: false, removePrefix: 'rocketmq', sourceFiles: '**/rocketmq/Dockerfile')], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: true)])
            }
        }  
    }
}
复制代码

 运行

 镜像查看

yml文件查看

复制代码
...
spec:
  replicas: 1
  selector:
    matchLabels:
      app: magedu-nginx-selector
  template:
    metadata:
      labels:
        app: magedu-nginx-selector
    spec:
      containers:
      - name: magedu-nginx-container
        image: 124.222.68.142:7086/rocketmq/rocketmq-console:2024-05-28-16-10-42
        imagePullPolicy: IfNotPresent
        ports:
        - containerPort: 80
          protocol: TCP
          name: http
        - containerPort: 443
          protocol: TCP
          name: https
...
复制代码

 

posted @   不会跳舞的胖子  阅读(45)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示