gitlab-runner 安装使用

  • gitlab-runner 是一个开源的与 gitlab CI 配合使用的项目,用于运行任务,并将结果返回 gitlab
  • 本文通过docker in docker的方式,即在具有特权模式的 Docker 中使用 Docker,通过 gitlab-runner 使用 docker 的来构建项目,完成打包,测试,发布等任务。这样 gitlab-runner 只是需要 Dockerfile 即可,可方便日后使用其他 CI/CD 工具。同时本地调试也十分方便
  • 文档地址:https://docs.gitlab.com/runner

安装

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

注册

  • 安装好 gitlab-runner 后,需要进行注册,gitlab 才会出现 runner 列表。注册前需要准备好地址和 token,管理员进入管理中心>概览>Runner可查看 runner 列表、url 和注册令牌
  • 如果想要为某群组或者项目设置 runner,可在对应群组或者项目的设置>CI/CD>Runner获取 url 和 token
  • 首先进入容器交互模式
docker exec -it gitlab-runner bash
  • 输入命令gitlab-runner register进行注册,按照提示和文档说明一步步填写即可
  • 也可一条命令完成注册
sudo gitlab-runner register \
--non-interactive \
--url "https://gitlab.com/" \
--registration-token "PROJECT_REGISTRATION_TOKEN" \
--executor "docker" \
--docker-image alpine:latest \
--description "docker-runner" \
--tag-list "docker,aws" \
--run-untagged="true" \
--locked="false" \
--access-level="not_protected"

配置

[[runners]]
executor = "docker"
[runners.docker]
privileged = true
  • 完整的例子
[[runners]]
name = "docker-runner"
url = "http://192.168.99.100:8900/"
token = "zLBu8yXEFPGKaaasZopn"
executor = "docker"
clone_url = "http://192.168.99.100:8900/"
[runners.custom_build_dir]
[runners.docker]
tls_verify = false
image = "apline:latest"
privileged = true
disable_entrypoint_overwrite = false
oom_kill_disable = false
disable_cache = false
volumes = ["/cache"]
shm_size = 0

环境变量

  • 通过设置环境变量,让 runner 执行的时候读取,避免在源码中记录敏感信息

  • 在群组或者项目的设置中依次点击设置>CI/CD>变量

  • .gitlab-ci.yml文件中使用方式

    Shell Usage
    bash/sh $variable
    windows batch %variable%
    PowerShell $env:variable
  • 参考https://docs.gitlab.com/ce/ci/variables/README.html#via-the-ui

  • Dockerfile 中使用变量参考:https://docs.docker.com/engine/reference/builder/#arg

添加 Dockerfile

FROM mcr.microsoft.com/dotnet/core/sdk:2.2-stretch
ARG AppKey
ARG Source
WORKDIR /src
COPY ["A1/A1.csproj", "A1/"]
RUN dotnet restore "A1/A1.csproj"
COPY . .
WORKDIR /src/A1
RUN dotnet pack "A1" -c Release -o /app WORKDIR /app
RUN dotnet nuget push *.nupkg -k ${AppKey} -s ${Source}

添加 .gitlab-ci.yml

# This file is a template, and might need editing before it works on your project.
build-master:
# Official docker image.
image: docker:latest
stage: build
services:
- docker:dind
before_script:
# - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
- docker --version
- echo $NugetAppKey
- echo $NugetSource
script:
- docker build --build-arg AppKey=$NugetAppKey --build-arg Source=$NugetSource -t A1:latest .
only:
- master

问题

[[runners]]
name = "ruby-2.1-docker"
url = "https://CI/"
token = "TOKEN"
limit = 0
executor = "docker"
builds_dir = ""
shell = ""
environment = ["ENV=value", "LC_ALL=en_US.UTF-8"]
clone_url = "http://gitlab.example.local"

总结

  • 安装过程也没什么难点,有什么不对的多试几次即可
  • gitlab 的文档还是挺齐全的,如果能够把相关的文档先大概浏览一遍,将会有事半功倍的效果,省去不少麻烦

gitlab-runner 安装使用的更多相关文章

  1. Gitlab CI持续集成 - GitLab Runner 安装与注册

    GitLab Runner安装 需要添加gitlab官方库: # For Debian/Ubuntu/Mint curl -L https://packages.gitlab.com/install/ ...

  2. gitlab runner安装与使用

    今天来讲一下如何使用gitlab-runner 下载runner,根据自己对应服务器的型号自行选择下载: # Linux x86- sudo wget -O /usr/local/bin/gitlab ...

  3. docker-Gitlab、GitLab Runner安装

    以下操作均在CentOs下操作 1.Gitlab install ① 启动gitlab docker run --detach \ --hostname 115.30.149.35 \ --publi ...

  4. [转] Gitlab 8.x runner安装与配置

    [From]http://muchstudy.com/2018/07/13/Gitlab-8-x-runner%E5%AE%89%E8%A3%85%E4%B8%8E%E9%85%8D%E7%BD%AE ...

  5. Ubuntu安装Gitlab Runner

    第一步: 添加GitLab的官方存储库:    curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runne ...

  6. 使用gitlab runner 进行CI(二):gitlab runner的安装与配置

    参考 https://docs.gitlab.com/runner/install/index.html,可以选择与gitlab相同的版本. gitlab runner可以通过安装binary包或do ...

  7. gitlab一键安装 (转)

    原文地址:http://www.2cto.com/os/201411/353292.html 0 简介bitnami和gitlab bitnami BitNami是一个开源项目,该项目产生的开源软件包 ...

  8. 超详细Gitlab Runner环境配置中文教程

    配置GitlabRunner环境 GitLab Runner 是一个开源项目, 它用来运行你定制的任务(jobs)并把结果返回给 GitLab. GitLab Runner 配合GitLab CI(G ...

  9. 基础架构之Gitlab Runner

    基础架构之Gitlab Runner也是常用的基础设施,我们接着GitLab操作,具体使用GitlabRunner,如果不熟悉可以见官方详细介绍https://docs.gitlab.com/runn ...

  10. gitlab一键安装 笔记

    0 简单介绍bitnami和gitlab bitnami BitNami是一个开源项目,该项目产生的开源软件包安装 Web应用程序和解决方式堆栈.以及虚拟设备. bitnami主办Bitrock公司成 ...

随机推荐

  1. Java 堆栈内存的理解

    Java中变量在内存中的分配1). 类变量(static修饰的变量):在程序加载时系统就为它在堆中开辟了内存,堆中的内存地址存放于栈以便高速访问.静态变量的生命周期—一直持续到整个“系统”关闭 2). ...

  2. Linux设置开机挂载

    Linux可不可以在开机的时候就将我们要的文件系统都挂载好?这样就不需要每次进入Linux系统还要挂载一次.当然可以,那就直接到/etc/fstab里面去修改. 系统挂载的一些限制: - 根目录/是必 ...

  3. 【算法编程 C++ Python】二维数组查找

    题目: 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. 思路: 最简单:每一行都 ...

  4. numpy模块常用函数解析

    https://blog.csdn.net/lm_is_dc/article/details/81098805 numpy模块以下命令都是在浏览器中输入. cmd命令窗口输入:jupyter note ...

  5. arcpy实例教程-地图范围导出到要素类

    arcpy实例教程-地图范围导出到要素类 商务合作,科技咨询,版权转让:向日葵,135-4855_4328,xiexiaokui#qq.com 功能:将当前地图范围导出到内存要素类 描述:将当前地图的 ...

  6. android -------- 解决RecyclerView显示不全只显示一条item的问题

    布局文件1 <?xml version="1.0" encoding="utf-8"?> <ScrollView xmlns:android= ...

  7. 关于Linux中nohup.out日志过大问题

    背景,java项目,一般在运行JAVA程序时需要用到nohup命令来实现后台启动日志,默认保存在当前目露nohup.out文件.但是有些程序输出nohup文件会出现过大的情况. 在此解决如下: 1,在 ...

  8. date命令时间戳和时间之间的转换

    这里是在mac下的操作,主要就是用date这个命令,更多的用法用man命令查看 字符串格式时间 TO 时间戳我们知道date 命令可以直接把当前时间转化为时间戳 # date +%s143678152 ...

  9. redis中key和value的存储大小限制

    String类型:一个String类型的value最大可以存储512M List类型:list的元素个数最多为2^32-1个,也就是4294967295个. Set类型:元素个数最多为2^32-1个, ...

  10. 自定义Func方法支持out,ref参数

    默认的Func不支持Out,ref类型的参数,所以需要自定义个delegate func来满足需求.具体代码如下 public delegate TResult FuncEX<T1, T2, T ...