k8s Gitlab CI/CD 之自动编译Docker镜像并推送到指定的Registry
环境介绍:
说明 | 节点 | ip | 系统 |
Gitlab Server | git.ds.com | 10.0.1.179 | CentOS 7.5.1804 |
Gitlab Runner | 10.0.1.178 | CentOS 7.5.1804 | |
Docker Registry Harbor | harbor.ds.com | 10.0.1.183 | CentOS 7.5.1804 |
关于 gitlab server和Harbor的安装这里就表述了。
一、gitlab runner的安装 (gitlab 10版本的)
1、根据具体的系统环境下载对应的二进制执行文件
1
2
3
4
5
6
7
8
|
# Linux x86-64 sudo wget -O /usr/local/bin/gitlab-runner https: //gitlab-runner-downloads .s3.amazonaws.com /latest/binaries/gitlab-runner-linux-amd64 # Linux x86 sudo wget -O /usr/local/bin/gitlab-runner https: //gitlab-runner-downloads .s3.amazonaws.com /latest/binaries/gitlab-runner-linux-386 # Linux arm sudo wget -O /usr/local/bin/gitlab-runner https: //gitlab-runner-downloads .s3.amazonaws.com /latest/binaries/gitlab-runner-linux-arm |
通过下面的地址你可以找到左右版本的二进制文件
https://docs.gitlab.com/runner/install/bleeding-edge.html#download-any-other-tagged-release
2、给刚下载的二进制执行文件添加执行权限
1
|
sudo chmod +x /usr/local/bin/gitlab-runner |
3、安装docker
1
|
curl -sSL https: //get .docker.com/ | sh |
4、创建一个gitlab ci用户
1
|
useradd --comment 'GitLab Runner' --create-home gitlab-runner --shell /bin/bash |
5、将gitlab ci用户添加到docker运行用户的组里面
1
|
usermod -aG root gitlab-runner |
由于我的docker是用root用户运行的所以我这边将gitlab-runner用户加到root的组里面了。
6、开始运行GitLab-Runner
1
2
|
gitlab-runner install --user=gitlab-runner --working-directory= /home/gitlab-runner gitlab-runner start |
二、注册Runners
1、打开gitlab页面找到runners的注册令牌
2、去gitlab runner的节点上做注册动作
1
|
gitlab-runner register |
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
|
[root@DS-VM-Node_10_0_1_178 ~]$ gitlab-runner register Running in system-mode. Please enter the gitlab-ci coordinator URL (e.g. https: //gitlab .com/): http: //git .ds.com Please enter the gitlab-ci token for this runner: Fx1jQzBW5ZJoxz157KEU Please enter the gitlab-ci description for this runner: [DS-VM-Node_10_0_1_178.dwhd.org]: Please enter the gitlab-ci tags for this runner (comma separated): myrunner_10_0_1_178_2 Whether to run untagged builds [ true /false ]: [ false ]: true Whether to lock the Runner to current project [ true /false ]: [ true ]: true Registering runner... succeeded runner=Fx1jQzBW Please enter the executor: docker- ssh +machine, kubernetes, docker- ssh , shell, virtualbox, docker+machine, docker, parallels, ssh : shell Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded! [root@DS-VM-Node_10_0_1_178 ~]$ |
3、重启一下runner使之生效
1
|
gitlab-runner restart |
4、去gitlab上检查
能发现到一个刚注册的runner
5、将这个runner指定到指定项目上去
三、测试
新建了一个gitlab项目。
k8s Gitlab CI/CD 之自动编译Docker镜像并推送到指定的Registry的更多相关文章
- 利用 Maven 创建 Docker 镜像并且推送到私有注册中心
利用 Maven 命令生成项目框架 mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app -Darchetype ...
- 03.pipeline实现项目自动编译docker镜像自动打包
https://jenkins.io/zh/doc/book/pipeline/ 官方教程,可以中文.Jenkinsfile就是把pipeline内容保存到文件,然后提交到svn等版本控制库中.安装b ...
- 使用Jenkins自带功能(不用shell)构建Docker镜像并推送到远程仓库
意义: 一开始实现这个目的是在Jenkins中使用的shell脚本,也就是如下的这个: bash # 进入到生成jar包的根目录 cd ${WORKSPACE}/${module_filename} ...
- 【OF框架】在Visual Studio中发布Docker镜像,推送镜像到Azure容器注册表
准备 拥有Azure账号,已经创建 Azure容器注册表,获得注册表地址.账号.密码 本地已经在Visual Studio登录Azure账号. 本地已经拥有Docker环境 注意:首次发布Docker ...
- Docker 镜像的推送(六)
目录 一.为镜像命名 二.推送到官方 Docker Hub 1.首先得在 Docker Hub 上注册一个账号. 2.在 Docker Host 上登录 3.修改镜像命名 4.镜像上传 5.登录查看上 ...
- 使用maven插件dockerfile-maven-plugin生成Docker镜像并推送到镜像仓库
1.引入maven插件 <build> <plugins> <plugin> <groupId>com.spotify</groupId> ...
- 实践分享!GitLab CI/CD 快速入门
用过 GitLab 的同学肯定也对 GitLab CI/CD 不陌生,GitLab CI/CD 是一个内置在 GitLab 中的工具,它可以帮助我们在每次代码推送时运行一系列脚本来构建.测试和验证代码 ...
- GitLab CI/CD的官译【原】
CI / CD方法简介 软件开发的持续集成基于自动执行脚本,以最大限度地减少在开发应用程序时引入错误的可能性.从新代码的开发到部署,它们需要较少的人为干预甚至根本不需要干预. 它涉及在每次小迭代中不断 ...
- .Net Core自动化部署系列(三):使用GitLab CI/CD 自动部署Api到Docker
之前写过使用Jenkins实现自动化部署,最近正好没事研究了下GitLab的自动化部署,顺便记录一下. 使用GitLab部署我们需要准备两件事,第一个起码你得有个GitLab,自己搭建或者使用官方的都 ...
随机推荐
- Java多线程-synchronized关键字
进程:是一个正在执行中的程序.每一个进程执行都有一个执行顺序.该顺序是一个执行路径,或者叫一个控制单元. 线程:就是进程中的一个独立的控制单元.线程在控制着进程的执行. 一个进程中至少有一个线程 Ja ...
- 从XMLHttpRequest中获取请求的URL
在编写Ajax通用错误处理程序时,经常需要记录发生错误的XMLHttpRequest的请求URL.但查询文档,并未找到从XMLHttpRequest中获取请求URL的方法. 在javascript - ...
- 【python】os.getcwd和getcwdu
print os.getcwd(), type(os.getcwd()) print os.getcwdu(), type(os.getcwdu()) 结果如下: C:\Users\Administr ...
- CDC之Synchronizers
1 Scenarios Two scenarios for passing signals across CDC boundaries: 1) sometimes it's not necessary ...
- matlab学习滚动条改变文本数值
如下分别添加滚动条,静态文本框和可编辑文本框,字体大小改为10,string值按下图,并使用对齐工具 保存名为GUI_02,会自动出来一个.m文件 注意代码一个字都不要错 %定义变量var,保存滚动条 ...
- day34-3 类和对象小知识
目录 属性查找顺序 类与对象的绑定方法 类与数据类型 对象的高度整合 属性查找顺序 属性查找顺序:先从对象自身查找,对象没有就去类中查找,类中没有则报错 class Student: name = ' ...
- python PIL图像处理-图片上添加文字
首先需要安装库pillow cmd安装命令:pip install pillow 安装完后,编写脚本如下: from PIL import Image, ImageDraw, ImageFont de ...
- [bzoj1050 HAOI2006] 旅行comf (kruskal)
传送门 Description 给你一个无向图,N(N<=500)个顶点, M(M<=5000)条边,每条边有一个权值Vi(Vi<30000).给你两个顶点S和T,求 一条路径,使得 ...
- js中writeln()方法
writeln( ) 方法与 write( ) 方法几乎一样,差别仅在于是前者将在所提供的任何字符串后添加一个换行符.在 HTML 中,这通常只会在后面产生一个空格:不过如果使用了 <PRE&g ...
- Java设计模式之 — 组合(Composite)
转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/9153753 听说你们公司最近新推出了一款电子书阅读应用,市场反应很不错,应用里还有 ...