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-64sudo wget -O /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64# Linux x86sudo wget -O /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-386# Linux armsudo 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-runnergitlab-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 registerRunning in system-mode.Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com/):http://git.ds.comPlease enter the gitlab-ci token for this runner:Fx1jQzBW5ZJoxz157KEUPlease 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_2Whether to run untagged builds [true/false]:[false]: trueWhether to lock the Runner to current project [true/false]:[true]: trueRegistering runner... succeeded runner=Fx1jQzBWPlease enter the executor: docker-ssh+machine, kubernetes, docker-ssh, shell, virtualbox, docker+machine, docker, parallels, ssh:shellRunner 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,自己搭建或者使用官方的都 ...
随机推荐
- 易企CMS模板调用标签列表
格式化URL formaturl 参数:type (生成URL类型) 可选值:article,product,category,catalog,comment参数:siteurl (生成URL网站地址 ...
- Android开放百度地图集成
1.创建应用 获取AK (我理解为Application key) 通过百度账号登录百度地图开放平台,进入API控制台 http://lbsyun.baidu.com/apiconsole/key ...
- 如何使windows系统ping通VMware下面的linux系统
引用http://www.linuxidc.com/Linux/2012-11/73749p2.htm 很多人在开始接触Linux或者是嵌入式开发的时候都会遇到一个难题,就是如何在Linux下ping ...
- 解决无法移除tomcat中的项目
问题:启动myeclipse,tomcat提示报错,blind,但是你移除的时候无法移除,只会显示一个黄色的感叹号,此时你直接在webapp中删除时,也提示呗占用无法删除. 办法:关掉myeclips ...
- python爬虫:找房助手V1.0-爬取58同城租房信息
1.用于爬取58上的租房信息,限成都,其他地方的,可以把网址改改: 2.这个爬虫有一点问题,就是没用多线程,因为我用了之后总是会报: 'module' object has no attribute ...
- hibernate_03_session详解
获得session对象有两种方法: 1)openSession 2)getCurrentSession 如果使用的是getCurrentSession需要在hibernate.cfg.xml文件中进行 ...
- AI:AI是什么?
古老的哲学对科学有永远的借鉴意义,科学上的咬文嚼字往往会让其丧失完备性. 一.AI是什么 你看起来它有多好,它就有多好.本质只能通过表象来描述,在色即是空的逻辑里,图灵测试也许是最精准的AI测试方式. ...
- Django 模型层(标签、过滤器、模板的继承与导入)
过滤器/自定义过滤器 模板语法中的过滤器类似于python中的内置方法,在我们把数据从后端通过rander传入到前端html文件中之后,在前端我们可以通过模板语法,对传入的数据再进行以通骚操作. 首先 ...
- kvm迁移
一.迁移简介 迁移: 系统的迁移是指把源主机上的操作系统和应用程序移动到目的主机,并且能够在目的主机上正常运行.在没有虚拟机的时代,物理机之间的迁移依靠的是系统备份和恢复技术.在源主机上实时 ...
- eas之获取各模块系统状态信息
public void getSystemStatue() throws EASBizException, BOSException { CompanyOrgUnitInfo co ...