1、启动gitlab-runner

docker run -d --name gitlab-runner --restart always \
-v /opt/data/gitlab-runner/config:/etc/gitlab-runner \
-v /var/run/docker.sock:/var/run/docker.sock \
gitlab/gitlab-runner

2、注册runner

docker exec -it gitlab-runner gitlab-ci-multi-runner register -n \
--url http://gitlab.8dat.com/ci \
--registration-token ip-Adefsfsfasdfdsfjkljd\
--tag-list=dev,uat,prod \
--description "project_build_runner" \
--docker-privileged=false \
--docker-pull-policy="if-not-present" \
--docker-image "mvn-jdk:latest" \
--docker-volumes /var/run/docker.sock:/var/run/docker.sock \
--docker-volumes /opt/data/gitlab-runner/.m2:/root/.m2 \
--executor docker
# gitlab-runner register

Please enter the gitlab-ci coordinator URL:
# 示例:http://gitlab.alibaba-inc.com/ci
Please enter the gitlab-ci token for this runner:
# xxxxxx
Please enter the gitlab-ci description for this runner:
# 示例:qd_api_runner
Please enter the gitlab-ci tags for this runner (comma separated):
# 示例:hwy
Whether to run untagged builds [true/false]:
# true
Please enter the executor: docker, parallels, shell, kubernetes, docker-ssh, ssh, virtualbox, docker+machine, docker-ssh+machine:
# docker
Please enter the default Docker image (e.g. ruby:2.1):
# maven:3-jdk-8

注: url 和token来自 gitlab 的 Settings--> CI/CD --> Runners

进入gitlab-runner容器生成的配置文件 cat /etc/gitlab-runner/config.toml,如下所示:

[[runners]]
name = "dev_build_runner"
url = "http://gitlab.XXX.top/"
token = "9103bafa16b1f63232323434345"
executor = "docker"
[runners.docker]
tls_verify = false
image = "mvn-jdk:latest"
privileged = false
disable_cache = false
volumes = ["/cache","/opt/data/gitlab-runner/.m2:/root/.m2"]
pull_policy = "if-not-present"
shm_size = 0
[runners.cache]
  • volumes = ["/var/run/docker.sock:/var/run/docker.sock", "/cache","/root/m2:/root/.m2"]中增加了/root/m2:/root/.m2,避免maven每次都下载jar包,提高效率。
  • pull_policy = "if-not-present" 避免docker 镜像每次都pull

作者:大罗马的太阳
链接:https://www.jianshu.com/p/c1effc3179be
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

3、 project中.gitlab-ci.yml的内容如下:

image: mvn-jdk:latest

variables:
MAVEN_OPTS: "-Dmaven.repo.local=/root/.m2/repository" stages:
- build build:config:
stage: build
script:
- mvn clean package -DskipTests

我们提交该文件到gitlab对应项目上去。

git add .gitlab-ci.yml
git commit -m "Add .gitlab-ci.yml"
git push origin develop

这个时候,我们从该项目的Pipelines选项卡下可以看到,有正在运行的刚新建的hwy的这个runner的pipelines了。点击进去可以看到控制台实时输出日志。如图: 

上面是一个简单的demo实例,一个pipeline只有一个job的类型,一般我们CI都是有好几步组成,比如java项目,我们先build打包一下,如果成功了在执行一下test,最后我们deploy到机器上。像多步操作的流程,我们可以配置yml文件,分解为多个job,来依次执行。例如下边这个.gitlab-ci.yml文件:

image: maven:3-jdk-8

stages:
- build
- test
- deploy job_build:
stage: build
script:
- mvn clean install
only:
- develop
tags:
- hwy job_test:
stage: test
script:
- mvn test
tags:
- hwy job_deploy:
stage: deploy
script:
- echo "deploy over..."
tags:
- hwy

说明:这个yml文件就是有3个job组成,依次为build、test、deploy。在执行这个CI流程时候,会分解成3个job依次执行。这里tags: hwy就是指定使用哪个runner来执行这个job,我们也可以执行其他已注册可用的runner。详细gitlab pipline流程截图如下:



 

docker中gitlab-runner配置的更多相关文章

  1. gitlab docker中postgresql远程访问配置

    1.配置postgresql远程访问 配置postgresql远程访问,需要修改两个文件,在gitlab-ce的docker中位置为 /var/opt/gitlab/postgresql/data 首 ...

  2. 本地docker搭建gitlab, 并配置ldap认证

    基于Docker在Mac OS X系统中的部署和设置GitLab的具体过程如下:   1. 安装Docker for Mac (参见https://docs.docker.com/docker-for ...

  3. Docker中mysql大小写敏感配置不起作用的问题排查

    由于linux中mysql的的表名是区分大小写的.所以需要配置my.conf. 所以在docker中需要把配置文件带进去.在宿主机的目录中新建my.conf文件,然后写入如下配置. [mysqld]u ...

  4. Docker 中如何安装配置 Nginx

    拉取 nginx 最新版镜像,然后简单启动一个 nginx 容器: docker pull nginx:latest docker run --name nginx01 -d -p 80:80 ngi ...

  5. gitlab runner 配置

    gitlab runnerhttps://scarletsky.github.io/2016/07/29/use-gitlab-ci-for-continuous-integration/https: ...

  6. 为 docker 中的 nginx 配置 https

    没有 https 加持的网站会逐渐地被浏览器标记为不安全的,所以为网站添加 https 已经变得刻不容缓.对于商业网站来说,花钱购买 SSL/TLS 证书并不是什么问题.但对于个人用户来说,如果能有免 ...

  7. Eclipse中GitLab的配置和使用入门

    一.Eclipse中配置GitLab的前提条件 1.1:安装Git客户端 去官网https://git-scm.com/downloads下载合适的版本即可,一般开发环境是windows的就下载win ...

  8. 七、【Docker笔记】Docker中网络基础配置

    一个系统一般都包含多个服务组件,这些大量的服务组件不可能放在同一个容器中,这就需要多个容器之间可以互相通信.Docker提供了两种方式来实现网络服务:映射容器端口到宿主主机.容器互联机制. 一.端口映 ...

  9. Docker中mysql修改配置导致无法启动的docker容器

    宿主机中查找my.cnf文件 # find / -name my.cnf |grep '/etc/mysql/my.cnf' 找到: /data/docker/overlay2/dfc2ddbed53 ...

  10. Docker中安装了gitlab,忘记了管理员密码,进行管理员密码重置

    重置docker中gitlab中root账号的密码 一.进入Docker的gitlab容器中 1.查看所有容器 docker ps 2.进入gitlab容器中 docker exec -it gitl ...

随机推荐

  1. 【学习】DataFrame&Series类【pandas】

    参考链接:http://blog.csdn.net/yhb315279058/article/details/50226027 DataFrame类: DataFrame有四个重要的属性: index ...

  2. Tools:apache部署https服务

    转自:https://www.cnblogs.com/ccccwork/p/6529367.html 1.要搭建https,必须要具备的东西 1.超文本传输协议httpd(apache)和ssl模块( ...

  3. 学习笔记:FIS3

    http://fis.baidu.com/ FIS3官网 [配环境]: 1.先要安装node.js https://nodejs.org/en/ NODE.js官网(下载这个,下载后运行:  http ...

  4. 简单快捷使用Git

    1.简介和安装Git是世界上目前最先进的分布式版本控制系统.安装:https://git-for-windows.github.io下载.设置姓名和email:git config --global ...

  5. C# 设置Excel数字格式

    数字格式使指能够控制Excel单元格中数字如何显示的格式字符串.例如,我们可以对数字12345应用数字格式“0.00”,使之显示为“12345.00”.在例如对数字12345应用“¥0.00”格式,使 ...

  6. ELK收集Nginx|Tomcat日志

    1.Nginx 日志收集,先安装Nginx cd /usr/local/logstash/config/etc/,创建如下配置文件,代码如下 Nginx.conf input { file { typ ...

  7. R语言-散点图阵

    1.pairs()函数 > pairs(iris[,1:4]) #取iris数据集的第一列到第四列两两作图 2.plot()函数 > plot(iris[,1:4], + main=&qu ...

  8. 回忆Partition算法及利用Partition进行快排

    一.Partiton算法 Partiton算法的主要内容就是随机选出一个数,将这个数作为中间数,将大于它的排在它右边,小于的排在左边(无序的). int partition (int arr[],in ...

  9. [剑指Offer]7-重建二叉树

    链接 https://www.nowcoder.com/practice/8a19cbe657394eeaac2f6ea9b0f6fcf6?tpId=13&tqId=11157&tPa ...

  10. python中type、class、object之间的关系

    先看一段代码 # -*- coding:UTF-8 -*- __autor__ = 'zhouli' __date__ = '2018/11/13 18:40' a = 1 b = 'abc' pri ...