Gitlab CI/CD笔记-第三天-使用主机docker in docker 进行构建并push镜像。

一、啥叫docker in docker

就是允许的镜像里头有一个docker,但这个docekr镜像只有docker的cli和/var/lib/docker.sock的套接字,没有允许build.然后里头又运行了一个docker,这个docker有build的能力,此时构建时就是里头的docker使用外部的docker-/var/lib/docker.sock的套接字进行build镜像。

二、场景

1、使用docker 执行器 runner的gitlab-ci

2、使用k8s执行器 runner的gitlab-ci

3、你的gitlab-ci中需要使用容器进行build构建镜像时。

4、需要使用容器的弹性扩容时。

三、Gitlab-ci如下:替换其中加粗的部分直接用。

stages: # List of stages for jobs, and their order of execution

  • build-image

build-image-job:

stage: build-image

image: docker:19.03.13

tags:

  • docker-dind

variables:

#CI_REGISTRY_PROJETY: harbor.com:543/spring_boot-ci

#DOCKER_IMAGE_NAME: ci-java-web

#DOCKER_IMAGE_TAG: v1

DOCKER_REGISTRY: <YOUR--REGISTRY>

DOCKER_REGISTRY_PASS: <YOUR--PASSWD>

DOCKER_REGISTRY_USER: <YOUR--USER>

DOCKER_TLS_CERTDIR: "/certs"

services:

  • name: docker:19.03.13-dind --

alias: docker --必须写,不然报错

before_script:

  • echo "DOCKER_REGISTRY_PASS" \| docker login DOCKER_REGISTRY --username $DOCKER_REGISTRY_USER --password-stdin

script:

  • docker pull <YOUR--REGISTRY>-image:tag

  • docker image ls

  • docker tag <LOCAL-YOUR--REGISTRY>-image:tag <REMOTE-YOUR--REGISTRY>-image:tag

  • docker push <REMOTE-YOUR--REGISTRY>-image:tag

相关推荐
星恒随风2 小时前
C++ 类和对象入门(二):默认成员函数、构造函数和析构函数详解
开发语言·c++·笔记·学习
问心无愧05132 小时前
ctf show web入门102
android·java·前端·笔记
じ☆冷颜〃2 小时前
Picard-Lindelöf 定理的多视角证明、推广与加权范数方法
经验分享·笔记·线性代数·数学建模
NULL指向我2 小时前
TMS320F28379D笔记2:空项目文件+头文件添加
笔记
`流年づ2 小时前
人工智能学习笔记-KNN
人工智能·笔记·学习
sheeta19983 小时前
LeetCode 补拙笔记 日期:2026.06.07 题目:283. 移动零
笔记·算法·leetcode
xian_wwq3 小时前
【学习笔记】「大模型安全:攻击面演化史」第 01 篇 Prompt Injection
笔记·学习·prompt
chnyi6_ya3 小时前
论文阅读笔记:VChain: Chain-of-Visual-Thought for Reasoning in Video Generation
论文阅读·笔记
vortex53 小时前
CheatMD:让 Markdown 笔记变成可执行的交互式命令
笔记·网络安全·markdown
じ☆冷颜〃3 小时前
Picard–Lindelöf定理在CS中的应用:理论框架与算法基础
人工智能·经验分享·笔记·算法·机器学习