美文网首页
GitLab-Runner配置参数详解

GitLab-Runner配置参数详解

作者: pilisiyang | 来源:发表于2021-06-29 16:08 被阅读0次

    配置参数

    配置默认在 /etc/gitlab-runner/config.toml 下,配置文件更改时不需要重启服务,每隔三秒GitLab Runner 会检查配置修改,并重新加载。

    全局配置

    配置项 描述
    concurrent 限制可以同时运行的作业数量
    log_level 日志级别
    log_format 日志格式
    check_interval 检查新作业的间隔长度,默认为3秒
    sentry_dsn 启用Sentry错误跟踪
    listen_address http服务监听地址

    [session_server]

    配置项 描述
    listen_address 会话服务器的内部 URL
    advertise_address 访问会话服务器的 URL
    session_timeout 作业完成后会话可以保持活动状态的秒数,默认值为1800秒

    [[runners]]

    每个runners部分定义一个runner服务

    配置项 描述
    name 描述
    url GitLab 实例 URL
    token runner的的特殊令牌(不是注册令牌)
    tls-ca-file 使用 HTTPS 时验证对等方的证书的文件
    tls-cert-file 使用 HTTPS 时与对等方进行身份验证的证书的文件
    tls-key-file 使用 HTTPS 时要与对等方进行身份验证的私钥的文件
    limit 限制同时处理作业数量,0(默认)表示不限制
    executor 选择应如何构建项目
    shell 生成脚本的 shell 的名称,默认值取决于平台
    builds_dir 构建存储在所选执行程序上下文中的目录的绝对路径。例如,本地、Docker 或 SSH。
    cache_dir 构建缓存存储在所选执行程序上下文中的目录的绝对路径。例如,本地、Docker 或 SSH。如果使用dockerexecutor,则需要在其volumes参数中包含该目录
    environment 追加或覆盖环境变量。
    request_concurrency 限制来自 GitLab 的新作业的并发请求数,默认为1
    output_limit 最大构建日志大小,默认值为4096(4MB)
    pre_clone_script 在克隆 Git 存储库之前执行的命令
    pre_build_script 在克隆 Git 存储库之后但在执行构建之前执行的命令
    post_build_script 在执行构建之后执行的命令
    clone_url 覆盖 GitLab 实例的 URL
    debug_trace_disabled 禁用CI_DEBUG_TRACE特性。当设置为true时,即使用户将CI_DEBUG_TRACE设置为true,调试日志(跟踪)也将保持禁用状态
    referees 额外的工作,将结果作为工作工件传递给 GitLab

    例子:

    [[runners]]
      name = "ruby-2.6-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"
    

    executors

    执行者 所需配置 作业运行
    shell 默认执行器
    docker [runners.docker] and Docker Engine docker容器
    docker-windows [runners.docker] and Docker Engine Windows Docker 容器
    docker-ssh [runners.docker], [runners.ssh], 和Docker 引擎 Docker 容器,使用 SSH 连接
    ssh [runners.ssh] 远程SSH
    parallels [runners.parallels] 和 [runners.ssh] Parallels VM,使用 SSH 连接
    virtualbox [runners.virtualbox] 和 [runners.ssh] VirtualBox VM,但使用 SSH 连接
    docker+machine [runners.docker] 和 [runners.machine] 类似docker,但使用自动缩放的 Docker 机器
    docker-ssh+machine [runners.docker] 和 [runners.machine] 类似docker-ssh,但使用自动缩放的 Docker 机器
    kubernetes [runners.kubernetes] Kubernetes pods

    [runners.docker] 部分

    定义了 Docker 容器参数

    配置项 描述
    allowed_images 可以在.gitlab-ci.yml文件中指定的镜像的通配符列表;如果不存在,则允许所有镜像(相当于["/:*"])
    allowed_services 可以在.gitlab-ci.yml文件中指定的服务的通配符列表;如果不存在,则允许所有镜像(相当于["/:*"])
    cache_dir 缓存目录,此路径可以是绝对路径,也可以是路径
    cap_add 向容器添加额外的 Linux 功能
    cap_drop 从容器中删除其他 Linux 功能
    cpuset_cpus 对照组的CpusetCpus
    cpu_shares 用于设置相对 CPU 使用率的 CPU 份额数,默认为1024
    cpus CPU 数量(在 Docker 1.13 或更高版本中可用)
    devices 与容器共享其他主机设备
    disable_cache Docker 执行器有两个级别的缓存:全局缓存和基于 Docker 卷的本地缓存,此配置标志仅作用于禁用自动创建(未映射到主机目录)缓存卷的本地配置标志
    disable_entrypoint_overwrite 禁用镜像覆盖entrypoint
    dns 供容器使用的 DNS 服务器列表
    dns_search DNS 搜索域列表
    extra_hosts 应该在容器环境中定义的主机
    gpus Docker 容器的 GPU 设备使用与dockercli相同的格式查看Docker 文档中的详细信息
    helper_image (高级)用于克隆存储库和上传工件的默认帮助程序镜像
    helper_image_flavor 设置辅助镜像风格(alpine或ubuntu)默认为alpine.
    host 自定义 Docker 端点默认为DOCKER_HOST环境或unix:///var/run/docker.sock.
    hostname Docker 容器的自定义主机名
    image 用于运行作业的镜像
    links 应与运行作业的容器链接的容器
    memory 内存限制
    memory_swap 总内存限制
    memory_reservation 内存软限制
    network_mode 将容器添加到自定义网络
    oom_kill_disable 如果发生内存不足 (OOM) 错误,不终止容器中的进程
    oom_score_adjust OOM 分数调整阳性意味着更早杀死
    privileged 使容器以特权模式运行不安全
    pull_policy 镜像拉取策略:never,if-not-present或always(默认)查看拉取策略文档中的详细信息您还可以添加多个拉取策略
    runtime Docker 容器的运行时
    security_opt 安全选项(–security-opt in docker run)获取:分隔键/值的列表
    shm_size 镜像的共享内存大小(以字节为单位)
    sysctls sysctl选项
    tls_cert_path 存储 ca.pem、cert.pem 或 key.pem 的目录,用于与 Docker 建立安全的 TLS 连接。在 boot2docker 中很有用。
    tls_verify 启用或禁用对 Docker 守护程序连接的 TLS 验证,默认禁用
    userns_mode 启用用户命名空间重新映射选项时,容器和 Docker 服务的用户命名空间模式,在 Docker 1.10 或更高版本中可用
    volumes 安装挂载卷与 Docker-v标志的语法相同
    volumes_from 从另一个容器继承挂载卷,访问级别默认为读写,但可以手动设置为ro(只读)或rw(读写)
    volume_driver 用于容器的挂载卷驱动程序
    wait_for_services_timeout 等待 Docker 服务的时间设置0为禁用默认为30

    例子:

    [runners.docker]
      host = ""
      hostname = ""
      tls_cert_path = "/Users/ayufan/.boot2docker/certs"
      image = "ruby:2.6"
      memory = "128m"
      memory_swap = "256m"
      memory_reservation = "64m"
      oom_kill_disable = false
      cpuset_cpus = "0,1"
      cpus = "2"
      dns = ["8.8.8.8"]
      dns_search = [""]
      privileged = false
      userns_mode = "host"
      cap_add = ["NET_ADMIN"]
      cap_drop = ["DAC_OVERRIDE"]
      devices = ["/dev/net/tun"]
      disable_cache = false
      wait_for_services_timeout = 30
      cache_dir = ""
      volumes = ["/data", "/home/project/cache"]
      extra_hosts = ["other-host:127.0.0.1"]
      shm_size = 300000
      volumes_from = ["storage_container:ro"]
      links = ["mysql_container:mysql"]
      allowed_images = ["ruby:*", "python:*", "php:*"]
      allowed_services = ["postgres:9", "redis:*", "mysql:*"]
      [[runners.docker.services]]
        name = "registry.example.com/svc1"
        alias = "svc1"
        entrypoint = ["entrypoint.sh"]
        command = ["executable","param1","param2"]
      [[runners.docker.services]]
        name = "redis:2.8"
        alias = "cache"
      [[runners.docker.services]]
        name = "postgres:9"
        alias = "postgres-db"
      [runners.docker.sysctls]
        "net.ipv4.ip_forward" = "1"
    

    更多配置项

    https://docs.gitlab.com/runner/configuration/advanced-configuration.html

    相关文章

      网友评论

          本文标题:GitLab-Runner配置参数详解

          本文链接:https://www.haomeiwen.com/subject/wdxkultx.html