gitlab高级功能之容器镜像仓库

今天给大家介绍一个gitlab的高级功能 - Container Registry,该功能可以实现docker镜像的仓库功能,将gitlab上的代码仓的代码通过docker构建后并推入到容器仓库中,好处就是无需再额外部署一套docker仓库。

文章目录

    • 1. 参考文档
    • 2. Container Registry配置
    • 3. 实战应用
      • 3.1 流水线镜像打包推送
      • 3.2 本地拉取项目镜像
    • 4. Container Registry镜像命名约定

1. 参考文档

  • enable-the-container-registry

2. Container Registry配置

  • 修改/etc/gitlab/gitlab.rb
registry_external_url 'https://gitlab.example.com:5050'
registry_nginx['ssl_certificate'] = "/path/to/certificate.pem"
registry_nginx['ssl_certificate_key'] = "/path/to/certificate.key"
  • 重载配置
gitlab-ctl reconfigure

3. 实战应用

3.1 流水线镜像打包推送

cat .gitlab-ci.yml

docker-build:image: docker:lateststage: buildservices:- docker:dindvariables:DOCKER_HOST: tcp://docker:2375DOCKER_TLS_CERTDIR: ""before_script:- echo  $CI_REGISTRY_USER $CI_REGISTRY_PASSWORD $CI_REGISTRY- docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRYscript:- docker build --pull -t "$CI_REGISTRY_IMAGE:${CI_COMMIT_SHORT_SHA}" .- docker push "$CI_REGISTRY_IMAGE:${CI_COMMIT_SHORT_SHA}"rules:- if: $CI_COMMIT_BRANCHexists:- Dockerfile

说明:

  • CI_REGISTRY_USER、CI_REGISTRY_PASSWORD、CI_REGISTRY、CI_REGISTRY_IMAGE、CI_COMMIT_SHORT_SHA均是内置变量
  • CI_REGISTRY_PASSWORD只在当前项目下有效。
    在这里插入图片描述
    在这里插入图片描述

3.2 本地拉取项目镜像

在这里插入图片描述

docker login registry_external_url:5050

通过命令行登录gitlab的镜像仓库并推送镜像时,有一下几种认证方式:

  • gitlab用户名密码的方式
  • 令牌的方式(个人令牌、项目令牌、群组令牌),基于令牌的方式,用户名可以是任意的字符串作为占位符即可。
    在这里插入图片描述
docker tag busybox:latest kube.bdeet.top:5050/ci-file/container-package:latest
docker tag busybox:latest kube.bdeet.top:5050/ci-file/container-package/busybox:latest
docker tag busybox:latest kube.bdeet.top:5050/ci-file/container-package/my/busybox:latestdocker push kube.bdeet.top:5050/ci-file/container-package:latest
docker push kube.bdeet.top:5050/ci-file/container-package/busybox:latest
docker push kube.bdeet.top:5050/ci-file/container-package/my/busybox:latest

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

4. Container Registry镜像命名约定

镜像遵循以下命名约定:

<registry URL>/<namespace>/<project>/<image>

例如,如果您的项目是 kube.bdeet.top:5050/ci-file/container-package,那么您的镜像必须至少命名为 kube.bdeet.top:5050/ci-file/container-package/my-app

您可以将其他名称附加到镜像名称的末尾,深度最多为三层。

例如,这些都是名为 container_registry 的项目中镜像的所有有效镜像名称:

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

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

相关文章

【动手学深度学习】(九)Kaggle房价预测

文章目录 一、代码1.下载和缓存数据集 【相关总结】1.os.makedirs()2.os.path.join()3.os.path.exits()4.os.path.dirname() 一、代码 题目链接 1.下载和缓存数据集 建立字典DATA_HUB&#xff0c;将数据集名称的字符串映射到数据集相关的二元组上&#xff0c;这个二元组包含…

Linux 进程(三)

Linux进程状态的查看&#xff1a; 这是Linux内核源代码对于进程状态的定义&#xff1a; R运行状态&#xff08;running&#xff09;: 并不意味着进程一定在运行中&#xff0c;它表明进程要么是在运行中要么在运行队列里。 S睡眠状态&#xff08;sleeping): 意味着进程在…

openGauss学习笔记-138 openGauss 数据库运维-例行维护-检查时间一致性

文章目录 openGauss学习笔记-138 openGauss 数据库运维-例行维护-检查时间一致性138.1 操作步骤 openGauss学习笔记-138 openGauss 数据库运维-例行维护-检查时间一致性 数据库事务一致性通过逻辑时钟保证&#xff0c;与操作系统时间无关&#xff0c;但是系统时间不一致会导致…

[传智杯 #3 决赛] 商店

disangan333 想给 disangan233 买一个礼物&#xff0c;于是他和你一起逛商店。 超详细&#xff0c;超详细&#xff0c;超详细&#xff0c;超详细 题目描述 有 n 名同学去逛商店&#xff0c;店里有 m 个物品&#xff0c;第 i 人有 wi​ 块钱&#xff0c;第 i 个物品价格 ci​…

18487.1 - 2015 电动汽车充电系统标准 第1部分 关键点梳理

一、部分知识介绍 1、连接方式 使用电缆和连接器将电动汽车接入电网&#xff08;电源&#xff09;的方法。 1.1、连接方式A 1.2、连接方式B 1.3、连接方式C 2、电动汽车控电设备 2.1、按照输出电压分类 1&#xff09;交流 单相 220V&#xff0c;三相 380V. 2&#xff09…

【超全】React学习笔记 下:路由与Redux状态管理

React学习笔记 React系列笔记学习 上篇笔记地址&#xff1a;【超全】React学习笔记 上&#xff1a;基础使用与脚手架 中篇笔记地址&#xff1a;【超全】React学习笔记 中&#xff1a;进阶语法与原理机制 React路由概念与理解使用 1. 引入 React路由是构建单页面应用(SPA, Sin…

Kotlin学习之03

nonLocalReturn返回调用的方法&#xff0c;下面直接返回main方法 inline fun nonLocalReturn(block:() -> Unit) { block() } fun main() { nonLocalReturn { return } } 禁止non-local-return&#xff0c;使用crossinline关键字 public inline fun IntArray.forEach(…

布局问题1:addSpacing()和setSpacing()函数的区别?

addSpacing()和setSpacing()函数的区别? 1&#xff09;addSpacing() &#xff1a;插入间距10&#xff0c;用于增加两个控件之间距离&#xff1b; 2&#xff09;setSpacing()&#xff1a;设置各部件的相邻距离&#xff0c;用于设置属于一个布局中的所有控件之间的间距。 这里举…

CSS 选择器优先级,!important 也会被覆盖?

目录 1&#xff0c;重要性2&#xff0c;专用性3&#xff0c;源代码顺序 CSS 属性值的计算过程中。其中第2步层叠冲突只是简单说明了下&#xff0c;这篇文章来详细介绍。 层叠冲突更广泛的被称为 CSS选择器优先级计算。 为什么叫层叠冲突&#xff0c;可以理解为 CSS 是 Cascadi…

基于 Python+flask 构建态势感知系统(附完整源码)

一、开发 一个基于linux的态势感知系统&#xff0c;基于python和flask框架开发&#xff0c;项目文件目录如下&#xff1a; admin -核心算法 charts -图表生成 model -类 app.py -主文件 config.py -配置文件 install.py -安装文件 二、安装 1、配置 数据库密码默认设…

redis单机版本安装

redis单机版本安装 1.redis单机版源码编译安装搭建(4.0示例) redis下载地址 https://redis.io/download redis源码编译 #!/bin/sh yum install -y wget gcc gcc-c make tar openssl openssl-devel cmakecd /usr/local/src wget http://download.redis.io/releases/redis-4…

华为杯研究生数学建模优秀参考论文(优秀论文参考2004-2022年)

一、背景介绍 中国研究生数学建模竞赛是一项面向在校研究生进行数学建模应用研究的学术竞赛活动&#xff0c;是广大在校研究生提高建立数学模型和运用互联网信息技术解决实际问题能力&#xff0c;培养科研创新精神和团队合作意识的大平台&#xff0c;大赛赞助单位为华为技术有限…

如何基于OpenCV和Sklearn库开展数据降维

大家在做数据分析或者机器学习应用过程中&#xff0c;不可避免的需要对数据进行降维操作&#xff0c;好多垂直行业业务中经常出现数据量少但维度巨大的情况。数据降维的目的是为了剔除不相关或冗余特征&#xff0c;使得数据易用&#xff0c;去除无用数据&#xff0c;实现数据可…

什么是Daily Scrum?

Daily Scrum&#xff08;每日站会&#xff09;&#xff0c;Scrum Master要确保这个会在每天都会开。这个会的目的就是检查正在做的东西和方式是否有利于完成Sprint目的&#xff0c;并及时做出必要的调整。 每日站会一般只开15分钟&#xff0c;为了让事情更简单些&#xff0c;这…

【数据中台】开源项目(3)-DataSphere Studio

DataSphere Studio&#xff08;简称 DSS&#xff09;是微众银行自研的数据应用开发管理集成框架。 基于插拔式的集成框架设计&#xff0c;及计算中间件 Linkis &#xff0c;可轻松接入上层各种数据应用系统&#xff0c;让数据开发变得简洁又易用。 在统一的 UI 下&#xff0c;D…

无线物理层安全学习

文章目录 3.17到3.203.85到3.88 3.17到3.20 3.85到3.88

论文阅读——Img2LLM(cvpr2023)

arxiv&#xff1a;[2212.10846] From Images to Textual Prompts: Zero-shot VQA with Frozen Large Language Models (arxiv.org) 一、介绍 使用大语言模解决VQA任务的方法大概两种&#xff1a;multi-modal pretraining and language-mediated VQA&#xff0c;即多模态预训练…

进程的创建:fork()

引入 创建进程的方式我们已经学习了一个&#xff01;在我们运行指令(或者运行我们自己写的可执行程序)的时候不就是创建了一个进程嘛&#xff1f;那个创建进程的方式称为指令级别的创建子进程&#xff01; 那如果我们想要在代码中创建进程该怎么办呢&#xff1f; fork() for…

【Win和Linux更换Java版本自动化脚本】

Windows版 要将Windows中的Java环境变量从Java 8更改为Java 9&#xff0c;并确保更改在重启计算机后仍然生效&#xff0c;请按照以下步骤操作&#xff1a; 首先&#xff0c;确保已经安装了Java 9。如果没有&#xff0c;请从Oracle官方网站下载并安装Java 9&#xff1a;https:/…

【算法通关村】链表基础经典问题解析

【算法通关村】链表基础&经典问题解析 一.什么是链表 链表是一种通过指针将多个节点串联在一起的线性结构&#xff0c;每一个节点&#xff08;结点&#xff09;都由两部分组成&#xff0c;一个是数据域&#xff08;用来存储数据&#xff09;&#xff0c;一个是指针域&…