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

相关推荐
草莓熊Lotso1 小时前
《算法闯关指南:动态规划算法--斐波拉契数列模型》--01.第N个泰波拉契数,02.三步问题
开发语言·c++·经验分享·笔记·其他·算法·动态规划
FFF团团员9098 小时前
树莓派学习笔记3:LED和Button
笔记·学习
碧海潮生_CC9 小时前
【CUDA笔记】04 CUDA 归约, 原子操作,Warp 交换
笔记·cuda
摇滚侠9 小时前
2025最新 SpringCloud 教程,从单体到集群架构,笔记02
笔记·spring cloud·架构
风123456789~10 小时前
【OceanBase专栏】OB背景知识
数据库·笔记·oceanbase
青靴10 小时前
轻量级日志监控与告警系统(二,下):CI/CD 具体部署实战,一行推送实现秒级更新
ci/cd
智者知已应修善业11 小时前
【51单片机普通延时奇偶灯切换】2023-4-4
c语言·经验分享·笔记·嵌入式硬件·51单片机
wdfk_prog11 小时前
[Linux]学习笔记系列 -- [block]bio
linux·笔记·学习
卡提西亚15 小时前
C++笔记-34-map/multimap容器
开发语言·c++·笔记
一个平凡而乐于分享的小比特16 小时前
UCOSIII笔记(十三)CPU利用率及栈检测统计与同时等待多个内核对象
笔记·ucosiii