在gitlab中的使用kaniko打造流水线
文章目录
- kaniko工具介绍
- 环境说明
- 系统版本
- 组件版本
- 组件部署参考链接
- 部署harbor
- 下载
- 解压、创建相关目录
- 配置
- 部署
- gitlab集成harbor
- 集成
- 项目ci配置
- 最终结果
kaniko工具介绍
kaniko 是一种从容器或 Kubernetes 集群内的 Dockerfile 构建容器镜像的工具。
kaniko 解决了使用 Docker-in-Docker 构建方法的两个问题:
- Docker-in-Docker需要特权模式才能运行,这是一个重大的安全问题。
- Docker-in-Docker通常会降低性能,并且速度可能非常慢。
对应runner的执行器选择:
- Kubernetes.
- Docker.
- Docker Machine.
环境说明
系统版本
- CentOS 7.9.2009
组件版本
- gitlab-jh-15.6.0
- harbor.v2.4.3
- Docker 20.10.22
- Docker-compose 1.18.0
组件部署参考链接
- gitlab-jh 部署链接:https://gitlab.cn/install/
- harbor 部署链接:https://github.com/goharbor/harbor/releases
- docker 部署链接:https://www.runoob.com/docker/centos-docker-install.html
- Docker-compose 部署链接:https://docker-docs.netlify.app/compose/install/#install-compose
部署harbor
下载
mkdir /data
cd /data
wget https://storage.googleapis.com/harbor-releases/release-2.4.0/harbor-offline-installer-v2.4.3.tgz
解压、创建相关目录
cd /data
tar -xf harbor-offline-installer-v2.4.3.tgz
cd harbor
mkdir {ssl,data}
配置
cd /data/harbor
cp harbor.yml.tmpl harbor.yml
vim harbor.yml
hostname: harbor.bdeet.top
http:# port for http, default is 80. If https enabled, this port will redirect to https portport: 8000
https:# https port for harbor, default is 443port: 8443# The path of cert and key files for nginxcertificate: /data/harbor/ssl/harbor.bdeet.top.crtprivate_key: /data/harbor/ssl/harbor.bdeet.top.key
harbor_admin_password: Wkx@123!#
database:# The password for the root user of Harbor DB. Change this before any production use.password: root123# The maximum number of connections in the idle connection pool. If it <=0, no idle connections are retained.max_idle_conns: 100# The maximum number of open connections to the database. If it <= 0, then there is no limit on the number of open connections.# Note: the default number of connections is 1024 for postgres of harbor.max_open_conns: 900
data_volume: /data/harbor/data
...
...
部署
cd /data/harbor
./install.sh
gitlab集成harbor
集成
Select project -> Settings -> Integrations -> Add an integration(Harbor)

项目ci配置
docker:stage: buildvariables:HARBOR_PORT: 8443image:name: gcr.io/kaniko-project/executor:debugentrypoint: ['']script:- mkdir -p /kaniko/.docker- echo "{\"auths\":{\"${HARBOR_URL}\":{\"auth\":\"$(echo -n ${HARBOR_USERNAME}:${HARBOR_PASSWORD} | base64)\"}}}" > /kaniko/.docker/config.json- cat /kaniko/.docker/config.json- echo /kaniko/executor --context "${CI_PROJECT_DIR}" --dockerfile "${CI_PROJECT_DIR}/Dockerfile" --destination "${HARBOR_HOST}:${HARBOR_PORT}/${HARBOR_PROJECT}/${CI_PROJECT_NAME}:v1"- >-/kaniko/executor--context "${CI_PROJECT_DIR}"--dockerfile "${CI_PROJECT_DIR}/Dockerfile"--destination "${HARBOR_HOST}:${HARBOR_PORT}/${HARBOR_PROJECT}/${CI_PROJECT_NAME}:${CI_COMMIT_SHORT_SHA}"rules:- if: $CI_COMMIT_BRANCH == "master"when: always
最终结果


相关文章:
在gitlab中的使用kaniko打造流水线
文章目录 kaniko工具介绍环境说明系统版本组件版本组件部署参考链接 部署harbor下载解压、创建相关目录配置部署 gitlab集成harbor集成项目ci配置最终结果 kaniko工具介绍 kaniko 是一种从容器或 Kubernetes 集群内的 Dockerfile 构建容器镜像的工具。 kaniko 解决了使用 Doc…...
【C语言 | 预处理】C语言预处理详解(一) —— #define、#under、#if、#else、#elif、#endif、#include、#error
😁博客主页😁:🚀https://blog.csdn.net/wkd_007🚀 🤑博客内容🤑:🍭嵌入式开发、Linux、C语言、C、数据结构、音视频🍭 🤣本文内容🤣&a…...
19、Flink 的Table API 和 SQL 中的自定义函数及示例(2)
Flink 系列文章 1、Flink 部署、概念介绍、source、transformation、sink使用示例、四大基石介绍和示例等系列综合文章链接 13、Flink 的table api与sql的基本概念、通用api介绍及入门示例 14、Flink 的table api与sql之数据类型: 内置数据类型以及它们的属性 15、Flink 的ta…...
(动手学习深度学习)第7章 残差网络---ResNet
目录 ResNet总结 ResNet代码实现ResNet的梯度计算 ResNet 总结 残差块使得很深的网络更加容易训练 甚至可以训练一千层的网络 残差网络对随后的深层神经网络设计产生了深远影响,无论是卷积类网络还是全连接类网络。 ResNet代码实现 导入相关库 import torch fro…...
4.Pod详解
4.Pod详解 文章目录 4.Pod详解4.1 Pod介绍4.1.1 Pod结构4.1.2 Pod定义4.1.3 在kubernetes中基本所有资源的一级属性都是一样的,主要包含5部分:4.1.4 在上面的属性中,spec是接下来研究的重点,继续看下它的常见子属性: 4.2 Pod配置4…...
OCR技术狂潮:揭秘最新发展现状,引爆未来智能时代
OCR(Optical Character Recognition,光学字符识别)技术自20世纪以来经历了长足的发展,随着计算机视觉、人工智能和深度学习等领域的进步,OCR技术在准确性、速度和适用范围上都取得了显著的进展。以下是OCR技术发展的现…...
【hcie-cloud】【3】华为云Stack规划设计之华为云Stack交付综述【上】
文章目录 前言华为云Stack交付综述交付流程华为云Stack交付流程华为云Stack安装部署流程 交付工具链华为云Stack交付工具链eDesigner - 让解决方案销售更智能eDesigner配置页面 - 基本信息eDesigner配置页面 - 服务及组网配置eDesigner配置页面 - 弹性云服务器/ECSeDesigner配置…...
Spring Ioc 容器启动流程
Spring容器的启动流程 本文基于 Spring 5.3.23 基于XML文件 public void test() {ApplicationContext applicationContext new ClassPathXmlApplicationContext("applicationContext.xml");User user applicationContext.getBean("user", User.class)…...
【714. 买卖股票的最佳时机含手续费】
目录 一、题目解析二、算法原理三、代码实现 一、题目解析 二、算法原理 三、代码实现 class Solution { public:int maxProfit(vector<int>& prices, int fee) {int nprices.size();vector<vector<int>> dp(n,vector<int>(2));dp[0][0]-prices[0…...
JS前端实现身份证号码合法性校验(校验码校验)
在做项目过程中针对自然人数据提交到后端前一般是要进行身份证的合法性校验,当身份证号输入错误以便给于用户友好的提示(也可以根据身份证号同时校验表单中性别和出生日期等),验证主要是防止无效数据入库。本文在前端使用JavaScript实现15/18位身份证的合…...
操作系统 day09(线程)
线程 为什么引入线程 在没引入进程之前,系统中的各个程序只能串行的执行,比如:只能先听歌,再聊QQ。引入进程之后,各个程序可以并发执行,比如:一边听歌,一边聊QQ。但是现在QQ可以一…...
单通道低压 H 桥电机驱动芯片AT9110H 兼容L9110 马达驱动芯片
H桥直流电机驱动电路是一种用于控制直流电机运转的电路,其主要特点是可以实现正反转控制,控制电机转速和方向,同时也具有过流保护功能。 H桥电路由四个功率晶体管和一些辅助电路组成,其中两个晶体管用于控制电机正转,…...
18. 深度学习 - 从零理解神经网络
文章目录 本文目标预测趋势与关系波士顿房价预测 Hi, 你好。我是茶桁。 我们终于又开启新的篇章了,从今天这节课开始,我们会花几节课来理解一下深度学习的相关知识,了解神经网络,多层神经网络相关知识。并且,我们会尝…...
Pycharm加载项目时异常,看不到自己的项目文件
最近看到一个朋友问,他把项目导入pycharm为什么项目里的包不在项目里显示,只在projects file里显示?问题截图如下: Project里看不到自己的项目文件 只能在Project Files里看到自己的项目文件 问题解答 我也是偶然发现的这个方案…...
目标检测YOLO实战应用案例100讲-基于无人机的轻量化目标检测系统设计(续)
目录 3.2 深度神经网络处理器设计 3.2.1 卷积神经网络处理器设计思路...
大文件传输小知识 | UDP和TCP哪个传输速度快?
在网络世界中,好像有两位“传输巨头”常常被提起:UDP和TCP。它们分别代表着用户数据报协议和传输控制协议。那么它们是什么?它们有什么区别?它们在传输大文件时的速度又如何?本文将深度解析这些问题,帮助企…...
【tgcalls】Instance接口的实例类的创建
tg 里有多个版本,因此设计了版本管理的map,每次可以选择一个版本进行实例创建这样,每个客户端就可以定制开发了。tg使用了c++20创建是要传递一个描述者,里面是上下文信息 G:\CDN\P2P-DEV\tdesktop-offical\Telegram\ThirdParty\tgcalls\tgcalls\Instance.cpp可以看到竟然是…...
【java:牛客每日三十题总结-3】
java:牛客每日三十题总结 总结如下 总结如下 集合相关知识点 Collection主要的子接口: List:可以存放重复内容 Set:不能存放重复内容,所有重复的内容靠hashCode()和equals()两个方法区分 Queue:队列接口 SortedSet:可以对集合中的数据进行排序 Map没有继承Collection接口&…...
区块链多链数字钱包开发
随着区块链技术的不断发展,多链数字钱包的开发逐渐成为热门领域。多链数字钱包是一种可以支持多种区块链网络的数字钱包,用户可以使用它来存储、管理和转移不同的数字资产。本文将探讨多链数字钱包的开发背景、市场需求、技术实现和未来趋势等方面。 一、…...
hive-行转列
xx...
当DevOps遇上‘雷曼时刻’:从一次金融系统崩溃看现代软件架构的容错与熔断设计
从雷曼兄弟到微服务架构:构建抗崩溃系统的工程启示录 2008年9月15日,华尔街158年历史的金融巨擘雷曼兄弟轰然倒塌,6100亿美元债务引发的连锁反应让全球金融体系陷入瘫痪。这场灾难与当代分布式系统崩溃有着惊人的相似性——当某个核心服务不可…...
STM32F103C8T6驱动安信可Ra-01S LoRa模块:从SPI接线到数据收发测试的保姆级教程
STM32F103C8T6驱动Ra-01S LoRa模块实战指南:从硬件搭建到数据通信全解析 在物联网设备开发中,远距离低功耗通信一直是关键挑战。安信可Ra-01S模块采用SX1268芯片,以超低接收电流(仅4.5mA)和高达-140dBm的接收灵敏度&am…...
从零构建人脸识别系统:OpenCV与dlib实战
1. 项目概述人脸识别系统是计算机视觉领域最具实用价值的技术之一。从手机解锁到机场安检,这项技术已经深入到我们生活的方方面面。但大多数人只把它当作黑箱使用,很少了解背后的实现原理。今天我想分享如何从零开始构建一个基础但完整的人脸识别系统&am…...
Android Studio布局编辑器偷懒技巧:用Guideline和圆形定位快速实现复杂UI
Android Studio布局编辑器进阶技巧:Guideline与圆形定位实战指南 在移动应用界面设计中,非标准布局往往需要开发者投入大量时间计算坐标位置。传统解决方案要么依赖嵌套视图组导致性能损耗,要么需要手动编写复杂的定位逻辑。ConstraintLayout…...
【FDA认证开发环境配置白皮书】:VSCode如何满足21 CFR Part 11合规要求?附可审计配置清单(仅限本期开放下载)
更多请点击: https://intelliparadigm.com 第一章:FDA认证开发环境配置白皮书导论 在医疗器械软件(SaMD)及临床决策支持系统(CDSS)的合规开发生命周期中,开发环境的可追溯性、确定性与审计就绪…...
保姆级教程:在Gazebo 11中为WAM-V无人艇模型添加AprilTag(Ubuntu 20.04环境)
深度解析:在Gazebo 11中为WAM-V无人艇集成AprilTag的完整实践指南(Ubuntu 20.04环境) 当你在ROS/Gazebo仿真环境中需要对现有机器人模型进行功能扩展时,往往会遇到模型文件嵌套复杂、修改位置不明确的困扰。本文将以WAM-V无人艇为…...
三菱FX3U PLC编程避坑指南:加减乘除指令用错,小心数据寄存器不够用!
三菱FX3U PLC运算指令实战避坑:寄存器分配的艺术与陷阱 第一次在FX3U上编写配方计算程序时,我遇到了一个诡异的现象——明明乘法运算逻辑正确,最终结果却总是莫名其妙地覆盖了其他变量。经过三天排查才发现,原来是一个32位乘法结果…...
别再只写@SaCheckPermission了!手把手教你自定义Sa-Token权限校验逻辑(附源码)
深度定制Sa-Token权限体系:从注解到动态数据源的进阶实践 在企业级应用开发中,权限管理往往需要超越简单的注解匹配。当系统演进到多租户架构、动态权限分配或复杂组织层级时,标准的SaCheckPermission注解可能显得力不从心。本文将带您深入Sa…...
YAJL错误处理最佳实践:如何优雅地处理解析异常
YAJL错误处理最佳实践:如何优雅地处理解析异常 【免费下载链接】yajl A fast streaming JSON parsing library in C. 项目地址: https://gitcode.com/gh_mirrors/ya/yajl YAJL(Yet Another JSON Library)作为一款高效的C语言JSON解析库…...
企业在线考试系统哪个好?企业真正关心的其实不是“便宜”,而是“能不能落地”
现在很多企业都在做数字化培训,也都想通过考试来检验学习效果。可一旦真正开始选系统,问题就来了。网上看了一圈,很多平台看起来功能不少,但真正用到企业内部时,就会发现并没有想象中那么顺手。有的系统适合学校&#…...
