jenkins pipeline使用

1、jenkins全局配置
1.1、maven配置
在这里插入图片描述
1.2、jdk配置
在这里插入图片描述
1.3、git配置
在这里插入图片描述
2、构建环境配置
2.1、安装时间插件 Date Parameter
在这里插入图片描述
2.2、Git Parameter 插件安装
在这里插入图片描述
3、pipeline如下

pipeline {agent anyenvironment {image_name = "192.168.122.150/ken-test/price-service:${date}"server_name = "ken-price-service"namespace = "hc-ken"}stages {stage('拉取代码') {steps {checkout([$class: 'GitSCM', branches: [[name:"${params.TAG}"]], extensions: [], userRemoteConfigs: [[credentialsId: 'xxxxx', url: 'https://codeup.aliyun.com/63dfsafaew16cdbdgwe2a87dd6/hc-ken/ken-price.git']]])}}stage('编译jar包'){ steps {retry(2) { sh "/opt/maven/bin/mvn  clean package -U -Dmaven.test.skip=true" }}  }stage('构建镜像&推送镜像仓库'){ steps {retry(2) { sh '''SPRING_PROFILES="ken_test"LINUX_TIME_ZONE="Africa/Lagos"JAR_FILE="price-service-1.0.0-SNAPSHOT.jar"cd ./price-servicedocker build  --build-arg SPRING_PROFILES="${SPRING_PROFILES}" --build-arg LINUX_TIME_ZONE="${LINUX_TIME_ZONE}" --build-arg JAR_FILE="${JAR_FILE}"  -t "${image_name}"  .docker login -uadmin -pHarbor12345 192.168.122.150docker push ${image_name} && docker rmi ${image_name}''' }}}stage('部署'){ steps {retry(2) { sh 'kubectl --kubeconfig /opt/kubernetes/config set image -n hc-ken deploy/${server_name} ${server_name}=${image_name}' }//retry(2) { echo 'test' }}  }}}

4、Dockerfile文件如下

[root@jenkins price-service]# cat Dockerfile 
#1基础镜像
FROM harbor.hcloud.com:81/library/jdk-time-as-skywalking:8-jdk-alpine
#2接收外部参数 阿波罗配置、激活的环境、jar、时区
ARG APOLLO_KEY
ARG APOLLO_APP_ID
ARG APOLLO_META
ARG APOLLO_CLUSTER
ARG SPRING_PROFILES
ARG LINUX_TIME_ZONE
ARG JVM_TIME_ZONE
ARG JAR_FILE
#3修改系统时区
RUN rm /etc/localtime
RUN ln -s /usr/share/zoneinfo/${LINUX_TIME_ZONE} /etc/localtime
#4创建目录
RUN mkdir -p /home/juser/app/bin
ADD target/${JAR_FILE}  /home/juser/app/bin/app.jar
#5cpoy启动脚本
ADD jenkins/restart_docker.sh /home/juser/app/bin/restart.sh
RUN chmod +x /home/juser/app/bin/restart.sh
RUN chown -R juser:juser /home/juser
ENV APOLLO_KEY "${APOLLO_KEY}"
ENV APOLLO_APP_ID "${APOLLO_APP_ID}"
ENV APOLLO_META "${APOLLO_META}"
ENV APOLLO_CLUSTER "${APOLLO_CLUSTER}"
ENV SPRING_PROFILES "${SPRING_PROFILES}"
ENV JVM_TIME_ZONE "${JVM_TIME_ZONE}"
#6切换用户
USER juser
WORKDIR /home/juser
#7暴露端口
EXPOSE 9070
#8执行脚本
ENTRYPOINT ["/home/juser/app/bin/restart.sh","start"]
#CMD ["/home/juser/app/bin/restart.sh","http://192.168.122.227:8080 ","175-dev-data","dev"]

5、构建完成如下
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/110321.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【大数据】Kafka 入门简介

Kafka 入门简介 1.什么是 Kafka2.Kafka 的基本概念3.Kafka 分布式架构4.配置单机版 Kafka4.1 下载并解压包4.2 启动 Kafka4.3 创建 Topic4.4 向 Topic 中发送消息4.5 从 Topic 中消费消息 5.实验5.1 实验一:Python 实现生产者消费者5.2 实验二:消费组实现…

最新AI创作系统ChatGPT源码+搭建部署教程+支持GPT4.0+支持ai绘画(Midjourney)/支持Prompt

一、AI创作系统 SparkAi创作系统是基于OpenAI很火的ChatGPT进行开发的Ai智能问答系统AI绘画系统,支持OpenAI GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美,可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如何搭建部署…

FPGA 图像缩放 1G/2.5G Ethernet PCS/PMA or SGMII实现 UDP 网络视频传输,提供工程和QT上位机源码加技术支持

目录 1、前言版本更新说明免责声明 2、相关方案推荐UDP视频传输--无缩放FPGA图像缩放方案我这里已有的以太网方案 3、设计思路框架视频源选择ADV7611 解码芯片配置及采集动态彩条跨时钟FIFO图像缩放模块详解设计框图代码框图2种插值算法的整合与选择 UDP协议栈UDP视频数据组包U…

使用MinIO Client客户端实现MySQL数据库跨机备份

安装Minio客户端 下载Linux版客户端文件 wget https://dl.min.io/client/mc/release/linux-amd64/mc -P /usr/local/bin/ chmod x /usr/local/bin/mc 添加目标对象 # 给Minio服务【用户名:yourusername,密码:youruserpassword】设置一个…

让iPhone用电脑的网络上网

让iPhone用电脑的网络上网,可以按照以下步骤操作: 在iPhone上找到并点击“设置”选项,进入“蜂窝移动网络”。打开“个人热点”选项。此时下方的弹出对话框会显示“仅USB”。用数据线将你的iPhone与电脑相连,并在电脑上打开“控制…

【Linux】文件IO基础知识——下篇

目录 一,stderr 2. errno全局变量 二,文件系统 1. 软链接 2. 硬链接 三,静态库 1. 制作静态库 2. 自动化生成静态库 & 自动发布库与头文件 3. 如何使用第三方库 法(一):修改系统文件库 …

液压自动化成套设备比例阀放大器

液压电气成套设备的比例阀放大器是一种电子控制设备,用于控制液压动力系统中的液压比例阀1。 比例阀放大器通常采用电子信号进行控制,以控制比例阀的开度和流量,以实现液压系统的可靠控制。比例阀放大器主要由以下组成部分: 驱动…

julia 笔记/论文辅助笔记:T2vec 轨迹处理

deepgtt/harbin/julia/Trip.jl at master boathit/deepgtt (github.com) 1 导入和声明 using HDF5, CSV, DataFrames, Dates, Sockets # 引入几个模块,这些模块用于文件操作、数据处理、日期处理、网络操作等功能。using Distances: euclidean # 从Distances模块…

如何修改模型颜色

1、模型材质颜色介绍 在3D模型中,材质(Material)是指表面质感的特性,包括颜色、光泽、透明度等属性。其中,颜色是最基本的属性之一,它决定了物体表面的外观和感觉。 在现代计算机图形学中,通常…

常用redis-lua脚本

REDIS控制台 1. 进入控制台 E:\soft\Redis-x64-5.0.14.1\redis-cli.exe -h 127.0.0.1 -p 6379 -a password常用redis-lua脚本 在REDIS控制台输入 1. 查询以xxx为前缀的key的数量 local prefix ARGV[1] local keys redis.call(KEYS, prefix .. *) return #keys对应EVAL脚…

网络安全是什么?一文认识网络安全

一、网络安全 1.概念 网络安全从其本质上讲就是网络上的信息安全,指网络系统的硬件、软件及数据受到保护。不遭受破坏、更改、泄露,系统可靠正常地运行,网络服务不中断。 (1)基本特征 网络安全根据其本质的界定&#…

JS 数组 splice 用法

JS数组的 splice() 方法是用于向/从数组中添加/删除元素。它的语法如下: array.splice(start, deleteCount, item1, item2, ...)其中, start:从该索引开始修改数组(从0开始计数)。如果索引为负数,则从倒数…

C++ 配置VSCode开发环境

C配置VSCode开发环境 简介 Visual Studio Code (VSCode) 是一款开源的轻量级代码编辑器。它支持许多编程语言,包括C。本文档将详细介绍如何在Windows环境下配置VSCode的C开发环境。 安装步骤 1. 安装Visual Studio Code 首先,你需要下载并安装Visua…

Git构建分布式版本控制系统

一、版本控制 1、概念: 版本控制(Version Control),也被称为版本管理、源代码管理或代码控制,是一种系统和工具,用于跟踪和管理文件、数据或源代码的不同版本和历史记录,在软件开发、文档管理…

jdbc设置StatementTimeout后还需要设置socket timeout参数吗

背景 我们设置JDBC参数时,不管有没有在Statement中配置超时时间StatementTimeout,我们都需要配置jdbc的socket timeout参数,那么为什么这个socket timeout参数如此必要,不设置又会怎么样? 问题真相 首先设置了State…

【Linux笔记】Linux基础权限

【Linux笔记】Linux基础权限 一、Linux权限的概念1.1、Linux中一切皆文件1.2、文件访问者的分类1.3、、Linux中的“用户白名单” 二、文件访问权限的修改2.1、权限的增加和减少的基础方法2.2、以八进制数修改权限 三、用户身份的修改3.1、修改文件的拥有者3.2、修改文件的所属组…

【VSCode】Windows环境下,VSCode 搭建 cmake 编译环境(通过配置文件配置)

除了之前的使用 VSCode 插件来编译工程外,我们也可以使用配置文件来编译cmake工程,主要依赖 launch.json 和 tasks.json 文件。 目录 一、下载编译器 1、下载 Windows GCC 2、选择编译器路径 二、配置 debug 环境 1、配置 lauch.json 文件 2、配置…

10.17课上(七段显示器,递归异或与电路)

异或的递归与数电实现 用二选一选择器实现异或函数 在异或当中,如果有一项为0,就可以把那一项消掉;如果有一项为1,就是把剩下的所有项运算完的结果取反 (由此在算法当中可以采用递归解决) 当w1为0时&…

百度文心一言 4.0 :如何申请百度文心一言 4.0

本心、输入输出、结果 文章目录 百度文心一言 4.0 :如何申请百度文心一言 4.0前言文心一言 4.0 ERNIE-Bot 4.0 :ERNIE-Bot 4.0 大模型深度测试体验报告如何申请千帆大模型试用百度文心一言 4.0 主要功能介绍配套发布的十余款AI原生应用插件、API 生态 百…