使用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 ...
越学越感到自己的无知
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现