当前位置: 首页 > news >正文

在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

最终结果

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

在这里插入图片描述

http://www.lryc.cn/news/224348.html

相关文章:

  • 【C语言 | 预处理】C语言预处理详解(一) —— #define、#under、#if、#else、#elif、#endif、#include、#error
  • 19、Flink 的Table API 和 SQL 中的自定义函数及示例(2)
  • (动手学习深度学习)第7章 残差网络---ResNet
  • 4.Pod详解
  • OCR技术狂潮:揭秘最新发展现状,引爆未来智能时代
  • 【hcie-cloud】【3】华为云Stack规划设计之华为云Stack交付综述【上】
  • Spring Ioc 容器启动流程
  • 【714. 买卖股票的最佳时机含手续费】
  • JS前端实现身份证号码合法性校验(校验码校验)
  • 操作系统 day09(线程)
  • 单通道低压 H 桥电机驱动芯片AT9110H 兼容L9110 马达驱动芯片
  • 18. 深度学习 - 从零理解神经网络
  • Pycharm加载项目时异常,看不到自己的项目文件
  • 目标检测YOLO实战应用案例100讲-基于无人机的轻量化目标检测系统设计(续)
  • 大文件传输小知识 | UDP和TCP哪个传输速度快?
  • 【tgcalls】Instance接口的实例类的创建
  • 【java:牛客每日三十题总结-3】
  • 区块链多链数字钱包开发
  • hive-行转列
  • 【赠书第2期】嵌入式虚拟化技术与应用
  • 如何写一篇吊炸天的竞品分析
  • 校园安防监控系统升级改造方案:如何实现设备利旧上云与AI视频识别感知?
  • 刷题笔记day15-二叉树层序遍历
  • 前端 JS 经典:ES6 和 CommonJs 用法
  • MacOS升级后命令行出现xcrun: error: invalid active developer path报错信息
  • 【Qt】QPalette
  • 专门为Web应用程序提供安全保护的设备-WAF
  • Android Camera App启动流程解析
  • [工业自动化-8]:西门子S7-15xxx编程 - PLC主站 - CPU模块
  • QT事件循环和事件队列的理解