1、启动gitlab-runner

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

2、注册runner

  1. docker exec -it gitlab-runner gitlab-ci-multi-runner register -n \
    --url http://gitlab.8dat.com/ci \
  2. --registration-token ip-Adefsfsfasdfdsfjkljd\
  3. --tag-list=dev,uat,prod \
  4. --description "project_build_runner" \
  5. --docker-privileged=false \
  6. --docker-pull-policy="if-not-present" \
  7. --docker-image "mvn-jdk:latest" \
  8. --docker-volumes /var/run/docker.sock:/var/run/docker.sock \
  9. --docker-volumes /opt/data/gitlab-runner/.m2:/root/.m2 \
  10. --executor docker
  1. # gitlab-runner register
  2.  
  3. Please enter the gitlab-ci coordinator URL:
  4. # 示例:http://gitlab.alibaba-inc.com/ci
  5. Please enter the gitlab-ci token for this runner:
  6. # xxxxxx
  7. Please enter the gitlab-ci description for this runner:
  8. # 示例:qd_api_runner
  9. Please enter the gitlab-ci tags for this runner (comma separated):
  10. # 示例:hwy
  11. Whether to run untagged builds [true/false]:
  12. # true
  13. Please enter the executor: docker, parallels, shell, kubernetes, docker-ssh, ssh, virtualbox, docker+machine, docker-ssh+machine:
  14. # docker
  15. Please enter the default Docker image (e.g. ruby:2.1):
  16. # maven:3-jdk-8

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

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

  1. [[runners]]
  2. name = "dev_build_runner"
  3. url = "http://gitlab.XXX.top/"
  4. token = "9103bafa16b1f63232323434345"
  5. executor = "docker"
  6. [runners.docker]
  7. tls_verify = false
  8. image = "mvn-jdk:latest"
  9. privileged = false
  10. disable_cache = false
  11. volumes = ["/cache","/opt/data/gitlab-runner/.m2:/root/.m2"]
  12. pull_policy = "if-not-present"
  13. shm_size = 0
  14. [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的内容如下:

  1. image: mvn-jdk:latest
  2.  
  3. variables:
  4. MAVEN_OPTS: "-Dmaven.repo.local=/root/.m2/repository"
  5.  
  6. stages:
  7. - build
  8.  
  9. build:config:
  10. stage: build
  11. script:
  12. - mvn clean package -DskipTests

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

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

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

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

  1. image: maven:3-jdk-8
  2.  
  3. stages:
  4. - build
  5. - test
  6. - deploy
  7.  
  8. job_build:
  9. stage: build
  10. script:
  11. - mvn clean install
  12. only:
  13. - develop
  14. tags:
  15. - hwy
  16.  
  17. job_test:
  18. stage: test
  19. script:
  20. - mvn test
  21. tags:
  22. - hwy
  23.  
  24. job_deploy:
  25. stage: deploy
  26. script:
  27. - echo "deploy over..."
  28. tags:
  29. - 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. linux 时间和时区设置

    在linux中与时间相关的文件有 /etc/localtime /etc/timezone 其中,/etc/localtime是用来描述本机时间,而 /etc/timezone是用来描述本机所属的时区 ...

  2. 在VMware中为Redhat HAT配置本地yum源

    在VMware中为Redhat HAT配置本地yum源 今天准备使用CM安装大数据环境,到需要几台机器都使用同一套yum源才可以,所以想到将Redhat镜像文件拷贝到虚拟机中,在挂起使用,最后通过ht ...

  3. java数据类型关系及关系

    java中有常见的基本数据类型和引用数据类型,基本数据类型为四类八种如下 整数型(byte,short,int,long) 浮点型(float,double) 字符型(char) 布尔型(boolea ...

  4. Open SuSE中自定义的环境变量

    针对与其它发行版本的Linux,网络上给出的添加环境变量的位置都是在/etc/profile文件中添加.在Open SuSE中也有/etc/profile文件,不过从该文件的前几行注释可以看出,官方建 ...

  5. java Integer类以及拆箱和装箱

    package com.ilaw.boson.controller; public class Demo { public static void main(String[] args) { Inte ...

  6. django 数据库查询 ORM

    实用的logging模块: zaisetting配置中加入下列配置,将sql语句打印到屏幕上,可以进行查看. LOGGING = { 'version': 1, 'disable_existing_l ...

  7. 28.Hibernate-HQL查询.md

    目录 1.概述 2.HQL实例 3.Criteria 查询 4.SQL本地查询 5.分页 1.概述 1)Get/load主键查询 2)对象导航查询 3)HQL查询, Hibernate Query l ...

  8. week07 13.4 NewsPipeline之 三 News Deduper

    还是循环将Q2中的东西拿出来 然后查重(去mongodb里面把一天之内的新闻都拿出来,然后把拿到的新的新闻和mongodb里一天内的新闻组一个 tf-idf的对比)可看13.3 相似度检查 如果超过一 ...

  9. JQuery/JS插件 数组转换为Table

    //数组 转换为 table var arr = [{ "D_AlarmValue": 7.00, "D_Code": "002", &qu ...

  10. 接入层高性能缓存技术nginx+redis利器OpenResty

    一. OpenRestyOpenResty是一个基于 Nginx与 Lua的高性能 Web平台,其内部集成了大量精良的 Lua库.第三方模块以及大多数的依赖项.用于方便地搭建能够处理超高并发.扩展性极 ...