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

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 的项目中镜像的所有有效镜像名称:

kube.bdeet.top:5050/ci-file/container-package:some-tag
kube.bdeet.top:5050/ci-file/container-package/image:latest
kube.bdeet.top:5050/ci-file/container-package/my/image:rc1
http://www.lryc.cn/news/256409.html

相关文章:

  • 线程的使用(二)
  • k8s之镜像拉取时使用secret
  • mysql面试题——MVCC
  • 【华为数据之道学习笔记】1-2华为数字化转型与数据治理
  • 微服务01
  • 作业12.8
  • 已解决error: (-215:Assertion failed) inv_scale_x > 0 in function ‘cv::resize‘
  • Android View.inflate 和 LayoutInflater.from(this).inflate 的区别
  • etcd 与 Consul 的一致性读对比
  • Docker 安装Apache Superset 并实现汉化和快速入门
  • 差异计算基础知识 - 了解期末业务操作、WIP 和差异
  • spring boot定时器实现定时同步数据
  • 第一百九十六回 通过蓝牙发送数据的细节
  • 26.Python 网络爬虫
  • Spring Boot 在启动之前还做了哪些准备工作?
  • SQL语句常用语法(开发场景中)
  • HarmonyOS应用开发者认证:开启全新的智能设备开发之旅
  • Python 模板引擎 Jinja2 的安装和使用
  • 案例063:基于微信小程序的传染病防控宣传系统
  • 53. Protocol buffer 的Go使用
  • 如何访问内部网络做内网穿透
  • git常用命令总结
  • Apollo新版本Beta技术沙龙
  • 数据结构第二次作业——递归、树、图【考点罗列//错题正解//题目解析】
  • Redis--12--Redis分布式锁的实现
  • MongoDB简介与安装
  • Avaya Aura Device Services 任意文件上传漏洞复现
  • C#注册表技术及操作
  • js/jQuery常见操作 之各种语法例子(包括jQuery中常见的与索引相关的选择器)
  • C语言数组(下)