Jenkins结合Gitlab,实现镜像构建及推送

docker-compose

jenkins的docker-compose目录为为/home/jenkins,这个后面写脚本的时候需要对应上

version: '3'
services:docker_jenkins:restart: alwaysimage: jenkins/jenkins:ltscontainer_name: docker_jenkinsprivileged: true ports:- '8080:8080'- '50000:50000'volumes:- ./data/:/var/jenkins_home- /var/run/docker.sock:/var/run/docker.sock- /usr/bin/docker:/usr/bin/docker- /usr/lib/x86_64-linux-gnu/libltdl.so.7:/usr/lib/x86_64-linux-gnu/libltdl.so.7

授权目录

  1. chmod 777 ./data -R
  2. chmod 777 /var/run/docker.sock (设置宿主机可执行,因为进入jenkins容器还会使用宿主机docker)

安装插件

  1. 搜索安装Git相关插件
  2. 搜索安装Gitlab相关插件
  3. 搜索安装Docker相关插件

在这里插入图片描述
在这里插入图片描述

凭据管理

  1. Gitlab 用户名密码
  2. 推送到阿里云镜像容器,docker login 的用户名密码
    在这里插入图片描述
    在这里插入图片描述

设置时区

System.setProperty('org.apache.commons.jelly.tags.fmt.timeZone', 'Asia/Shanghai')

在这里插入图片描述
在这里插入图片描述
点击运行

创建流水线

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
将jenkins生成的webhook地址复制到gitlab中
在这里插入图片描述

流水线脚本

在这里插入图片描述

下面脚本的/home/jenkins目录,需要指定为宿主机的挂载目录
需要修改credentialsId为自己的gitlab凭证、以及推送到镜像仓库的凭证
需要修改url为项目实际gitlab地址

java项目

node('built-in') { stage('Git Clone') {checkout([$class: 'GitSCM', branches: [[name: "origin/${env.gitlabSourceBranch}"]], extensions: [], userRemoteConfigs: [[credentialsId: 'ld-git', url: 'http://gitlab地址/asterism-back/aip-base.git']]])}stage('DockerPush-ld') {     globalDockerRegistry="registry.cn-hangzhou.aliyuncs.com" credentials = "ledison7"imageStore="https://registry.cn-hangzhou.aliyuncs.com"tenantCode="fireworks" docker.withRegistry(imageStore,credentials) {sh encoding: 'UTF-8', label: 'Maven 缓存构建',script:'''docker run -i --rm  -v /home/jenkins/mavenRespo:/var/jenkins_home/mavenRespo  -v /home/jenkins/data/workspace/${JOB_NAME}:/usr/src/mymaven -w /usr/src/mymaven  maven:3.6.3  mvn clean package -DskipTests -s ./go_settings.xmlsleep 1'''commitId = "${env.gitlabMergeRequestLastCommit}".substring(0,8)imageTag = "registry.cn-hangzhou.aliyuncs.com/fireworks/aip-base:latest"sh encoding: 'UTF-8', label: '镜像构建',script:' docker build -t  '+imageTag+' -f Dockerfile . 'sh encoding: 'UTF-8', label: '镜像推送',script:' docker push '+imageTag sh encoding: 'UTF-8', label: '镜像清理',script:' docker rmi '+imageTag} }}

java项目Dockerfile

FROM openjdk:8LABEL maintainer="363192641@qq.com"COPY aip-base-core/target/*.jar /aip-base.jar
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \&& echo "Asia/Shanghai" > /etc/timezoneEXPOSE 8181ENTRYPOINT java  -XX:+PrintFlagsFinal -XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap $JAVA_OPTS -jar  /aip-base.jar --spring.profiles.active=prod

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

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

相关文章

【自学开发之旅】Flask-前后端联调-异常标准化返回(六)

注册联调: 前端修改: 1.修改请求向后端的url地址 文件:env.development修改成VITE_API_TARGET_URL http://127.0.0.1:9000/v1 登录:token验证 校验forms/user.py from werkzeug.security import check_password_hash# 登录校验…

Ubuntu下安装Clion

前言 CLion 是一款由 JetBrains 开发的 C 集成开发环境(IDE),它拥有许多强大的功能,如代码自动完成、调试器、版本控制等等。CLion本身是收费软件,但如果是学生的话可以申请免费使用。 测试安装环境:Ubunt…

2614. 对角线上的质数-c语言解法

给你一个下标从 0 开始的二维整数数组 nums 。 返回位于 nums 至少一条 对角线 上的最大 质数 。如果任一对角线上均不存在质数,返回 0 。 注意: 如果某个整数大于 1 ,且不存在除 1 和自身之外的正整数因子,则认为该整数是一个…

iOS蓝牙 Connection Parameters 关键参数说明

1. 先贴苹果文档 《 Accessory Design Guidelines for Apple Devices 》 2. 几个关键词 connection Event Interval 事件间隔,为1.25ms的倍数。可以简单理解为,是两个连接着的蓝牙设备发送“心跳包”的时间间隔; 范围是 6 ~ 3200,即 7.5…

【ArcGIS】土地利用变化分析详解(栅格篇)

土地利用变化分析详解-栅格篇 土地利用类型分类1 统计不同土地利用类型的面积/占比1.1 操作步骤 2 统计不同区域各类土地利用类型的面积2.1 操作步骤 3 土地利用变化转移矩阵3.1 研究思路3.2 操作步骤 4 分析不同时期土地利用类型及属性变化4.1 研究思路4.2 操作步骤 参考 土地…

建不同锁对象对同表同数据加锁会怎样?

建不同锁对象对同表同数据加锁会怎样? 同事突然问我这个问题,这种东西动手测一下,两分钟的事儿。验证下自己心中所想。 建俩锁对象~ 代码 打断点 执行: 能动手就敲一下,懒得想,懒得记~ 推荐阅读&#xff1a…

ETLCloud助力富勒TMS实现物流数仓同步

富勒TMS提供了多种运输管理业务的解决方案,极大的方便了企业对物流的管理和人力输出,同时提供了大量的API接口,供用户做数据集成和数仓同步。 通过富勒TMS中心,第三方开发者和商家可实现以下功能: MS系统数据同步&…

【QT】day4

闹钟 头文件&#xff1a; #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QDebug> #include <QMouseEvent> //鼠标时间 #include <QPaintEvent> //绘制时间 #include <QPainter> //画家时间 #include <QPixmap> //图…

Python实现MYSQL蜜罐

1 LOAD DATA INFILE介绍 首先开启一个Mysql&#xff0c;看一下mysql是如何读取主机文件的。 1.1 linux搭建mysql 1&#xff09;docker运行mysql 2&#xff09;启动Mysql docker run -itd…

Android Studio插件版本与Gradle 版本对应关系

关于作者&#xff1a;CSDN内容合伙人、技术专家&#xff0c; 从零开始做日活千万级APP。 专注于分享各领域原创系列文章 &#xff0c;擅长java后端、移动开发、商业变现、人工智能等&#xff0c;希望大家多多支持。 目录 一、导读二、概览三、Gradle各版本对应关系3.1 Gradle 版…

【C++】STL详解(六)—— list的模拟实现

​ ​&#x1f4dd;个人主页&#xff1a;Sherry的成长之路 &#x1f3e0;学习社区&#xff1a;Sherry的成长之路&#xff08;个人社区&#xff09; &#x1f4d6;专栏链接&#xff1a;C学习 &#x1f3af;长路漫漫浩浩&#xff0c;万事皆有期待 上一篇博客&#xff1a;【C】STL…

移动测试之语音识别功能如何测试?

移动测试之语音识别功能如何测试&#xff1f; 要知道语音识别功能如何测试&#xff0c;我们先了解智能产品语音交互流程&#xff1a; 所以&#xff0c;要进行测试的话&#xff0c;我们需要从以下几个维度来准备测试点&#xff1a; 基础功能测试&#xff1a; 1、声纹的录入&…

【Java 基础篇】Java Condition 接口详解

Java 提供了一种更灵活和高级的线程协作机制&#xff0c;通过 Condition 接口的使用&#xff0c;你可以更精细地控制线程的等待和唤醒&#xff0c;实现更复杂的线程同步和通信。本文将详细介绍 Java 的 Condition 接口&#xff0c;包括它的基本概念、常见用法以及注意事项。 什…

MyBatis 篇

目录 1、什么是MyBatis 2、说说MyBatis的优点和缺点 3、#{}和${}的区别是什么&#xff1f; 4、当实体类中的属性名和表中的字段名不一样 &#xff0c;怎么办 &#xff1f; 5、Mybatis是如何进行分页的&#xff1f;分页插件的原理是什么&#xff1f; 6、Mybatis是否支…

【大数据之Kafka】十五、Kafka-Kraft模式

1 Kafka-Kraft架构 左图为 Kafka 现有架构&#xff0c;元数据在 zookeeper 中&#xff0c;运行时动态选举 controller&#xff0c;由controller 进行 Kafka 集群管理。   右图为 kraft 模式架构&#xff08;实验性&#xff09;&#xff0c;不再依赖 zookeeper 集群&#xff0…

mysql 锁总结

redo log 是事务持久性的保证 undo log 是事务原子性的保证 锁机制 是事务隔离性的保证 MySQL的自动加锁依赖于数据库的事务机制。当事务对某个数据行进行更新操作时&#xff0c;MySQL就会自动给该行加上排他锁&#xff0c;防止其他事务同时对其进行修改。同时&#xff0c;MySQ…

【Linux】常用工具(下)

Linux常用工具 一、Linux 项目自动化构建工具 - make/Makefile1. 依赖关系和依赖方法2. 伪目标3. make/Makefile 具有依赖性的推导能力&#xff08;语法扩展&#xff09;4. 编写一个进度条代码&#xff08;1&#xff09;缓冲区&#xff08;2&#xff09;\n 和 \r&#xff08;3&…

硬件学习 PAD9.5 day02 原理图绘制中的操作,PCB 封装的制作

1. 原理图中的连线操作 1.1 点击连线按钮 1.2 点击需要连线的地方连接即可 1.3 双击即可停止连线 2. 原理图的总线绘制 2.1 按下总线绘制按钮 2.2 画一条总线 总线名称 总线名字 [ 起始数字 &#xff1a; 结束数字 ] 2.3 分线连接总线 注意&#xff1a;原理图的连线…

MySQL常用配置详解

目录 一、MySQL 查看配置信息二、MySQL 查看服务器当前运行状态的信息三、MySQL 常用配置详解1、mysql&#xff08;使用mysql命令登录数据库时的默认的设置&#xff09;2、client &#xff08;客户端默认设置内容&#xff09;3、mysqld&#xff08;服务端端配置&#xff09; 四…

【计算机网络】 拥塞控制

文章目录 背景TCP的四种拥塞控制算法慢开始与拥塞避免&#xff1a;快重传&#xff1a;快恢复&#xff1a; 流量控制和拥塞控制本质上的 区别 背景 网络中的链路容量和交换节点中的缓存和处理机都有着工作的极限&#xff0c;当网络的需求超过他们的工作极限时&#xff0c;就出现…