docker中gitlab-runner配置
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配置的更多相关文章
- gitlab docker中postgresql远程访问配置
1.配置postgresql远程访问 配置postgresql远程访问,需要修改两个文件,在gitlab-ce的docker中位置为 /var/opt/gitlab/postgresql/data 首 ...
- 本地docker搭建gitlab, 并配置ldap认证
基于Docker在Mac OS X系统中的部署和设置GitLab的具体过程如下: 1. 安装Docker for Mac (参见https://docs.docker.com/docker-for ...
- Docker中mysql大小写敏感配置不起作用的问题排查
由于linux中mysql的的表名是区分大小写的.所以需要配置my.conf. 所以在docker中需要把配置文件带进去.在宿主机的目录中新建my.conf文件,然后写入如下配置. [mysqld]u ...
- Docker 中如何安装配置 Nginx
拉取 nginx 最新版镜像,然后简单启动一个 nginx 容器: docker pull nginx:latest docker run --name nginx01 -d -p 80:80 ngi ...
- gitlab runner 配置
gitlab runnerhttps://scarletsky.github.io/2016/07/29/use-gitlab-ci-for-continuous-integration/https: ...
- 为 docker 中的 nginx 配置 https
没有 https 加持的网站会逐渐地被浏览器标记为不安全的,所以为网站添加 https 已经变得刻不容缓.对于商业网站来说,花钱购买 SSL/TLS 证书并不是什么问题.但对于个人用户来说,如果能有免 ...
- Eclipse中GitLab的配置和使用入门
一.Eclipse中配置GitLab的前提条件 1.1:安装Git客户端 去官网https://git-scm.com/downloads下载合适的版本即可,一般开发环境是windows的就下载win ...
- 七、【Docker笔记】Docker中网络基础配置
一个系统一般都包含多个服务组件,这些大量的服务组件不可能放在同一个容器中,这就需要多个容器之间可以互相通信.Docker提供了两种方式来实现网络服务:映射容器端口到宿主主机.容器互联机制. 一.端口映 ...
- Docker中mysql修改配置导致无法启动的docker容器
宿主机中查找my.cnf文件 # find / -name my.cnf |grep '/etc/mysql/my.cnf' 找到: /data/docker/overlay2/dfc2ddbed53 ...
- Docker中安装了gitlab,忘记了管理员密码,进行管理员密码重置
重置docker中gitlab中root账号的密码 一.进入Docker的gitlab容器中 1.查看所有容器 docker ps 2.进入gitlab容器中 docker exec -it gitl ...
随机推荐
- linux 时间和时区设置
在linux中与时间相关的文件有 /etc/localtime /etc/timezone 其中,/etc/localtime是用来描述本机时间,而 /etc/timezone是用来描述本机所属的时区 ...
- 在VMware中为Redhat HAT配置本地yum源
在VMware中为Redhat HAT配置本地yum源 今天准备使用CM安装大数据环境,到需要几台机器都使用同一套yum源才可以,所以想到将Redhat镜像文件拷贝到虚拟机中,在挂起使用,最后通过ht ...
- java数据类型关系及关系
java中有常见的基本数据类型和引用数据类型,基本数据类型为四类八种如下 整数型(byte,short,int,long) 浮点型(float,double) 字符型(char) 布尔型(boolea ...
- Open SuSE中自定义的环境变量
针对与其它发行版本的Linux,网络上给出的添加环境变量的位置都是在/etc/profile文件中添加.在Open SuSE中也有/etc/profile文件,不过从该文件的前几行注释可以看出,官方建 ...
- java Integer类以及拆箱和装箱
package com.ilaw.boson.controller; public class Demo { public static void main(String[] args) { Inte ...
- django 数据库查询 ORM
实用的logging模块: zaisetting配置中加入下列配置,将sql语句打印到屏幕上,可以进行查看. LOGGING = { 'version': 1, 'disable_existing_l ...
- 28.Hibernate-HQL查询.md
目录 1.概述 2.HQL实例 3.Criteria 查询 4.SQL本地查询 5.分页 1.概述 1)Get/load主键查询 2)对象导航查询 3)HQL查询, Hibernate Query l ...
- week07 13.4 NewsPipeline之 三 News Deduper
还是循环将Q2中的东西拿出来 然后查重(去mongodb里面把一天之内的新闻都拿出来,然后把拿到的新的新闻和mongodb里一天内的新闻组一个 tf-idf的对比)可看13.3 相似度检查 如果超过一 ...
- JQuery/JS插件 数组转换为Table
//数组 转换为 table var arr = [{ "D_AlarmValue": 7.00, "D_Code": "002", &qu ...
- 接入层高性能缓存技术nginx+redis利器OpenResty
一. OpenRestyOpenResty是一个基于 Nginx与 Lua的高性能 Web平台,其内部集成了大量精良的 Lua库.第三方模块以及大多数的依赖项.用于方便地搭建能够处理超高并发.扩展性极 ...