精华内容
下载资源
问答
  • 关注相关说明文章内容:Gitlab+Gitlab Runner配置与使用全文字数:>5600字(不含代码)作者主页:www.zxdmy.com csdn.zxdmy.com0. 序言在大学的课程学习,非常注重团队协作的培养,在企业开发中,团队协作开发项目...
    81529c76a38acca60bc186676c2b8853.png

    知行校园汇

    记录学习、分享干货、吐槽人生!

    关注

    b15094acf2b78f7fce7a91f550c00546.gif

    f846f8ccd021a46d2f7fa91bd12cd0ba.png

    相关说明

    • 文章内容:Gitlab+Gitlab Runner配置与使用

    • 全文字数:>5600字(不含代码)

    • 作者主页:www.zxdmy.com csdn.zxdmy.com

    b15094acf2b78f7fce7a91f550c00546.gif

    0. 序言

    在大学的课程学习,非常注重团队协作的培养,在企业开发中,团队协作开发项目的场景更是甚多。另外,在当下的热门技术栈中,微服务开发模式、前后端分离开发模式逐渐盛行,Spring Boot、VUE等热门技术,更是吸引了众多技术人员。当下的项目开发过程中,人们更加追求高内聚、低耦合,特别是前后端分离开发模式的提出。

    但是,做到低耦合的同时,也有一系列的问题产生。比如在团队协作开发过程中,后台开发人员新开发了一个功能,需要交给前端来配置,或者是交给测试人员进行测试,怎么实现?以往的操作是后台开发人员push项目到Git,前端/测试pull项目到本地,然后再编译、开发前端和测试项目。这要求无论是后端、前端开发人员,还是测试人员,每个人的电脑都需要有相同的配置,整个开发流程非常繁琐复杂。

    所以,Gitlab提出了的持续集成与持续交付的概念,即后台开发人员实现新功能后,将项目Push到Gitlab服务器,Gitlab服务器能够将项目自动集成,然后编译项目,并将项目部署到服务器。而对于前端开发人员和测试人员,只需要得到部署后的项目链接(或IP地址),即可进行前端项目的开发,以及各种接口的测试。在这个过程中,只需要后台开发人员和服务器的配置一致即可,开发人员与测试人员的配置无需关注。

    本文将基于Ubuntu18.04系统,从基本开发环境配置、Docker安装与Gitlab安装,以及Spring Boot项目的持续集成与持续交付功能方面,讲述完整的使用过程。

    注意,完整的部署过程需要具备Spring Boot、Linux和Docker的相关知识,可参考:

    https://www.zxdmy.com/?cate=4

    https://www.zxdmy.com/?cate=5

    https://www.zxdmy.com/?cate=6

    1. 本文目录

    • 0. 序言

    • 1. 本文目录

    • 2. 配置镜像源

      • 2.1 配置阿里云镜像源

      • 2.2 配置华为云镜像源

    • 3. 安装JDK

      • 3.1 下载与上传JDK

      • 3.2 安装与配置环境变量

      • 3.3 测试安装

      • 3.4 部分错误示例

    • 4. 安装Maven

      • 4.1 下载与上传

      • 4.2 安装与配置环境变量

      • 4.3 测试安装

      • 4.4 配置Maven镜像源

    • 5. 安装Docker

      • 5.1 安装Docker.

      • 5.2 配置Docker镜像源

    • 6. 安装Docker Compose

      • 6.1 X64系统的安装与验证

      • 6.2 Arm64系统的安装与验证

    • 7. 安装Gitlab

      • 7.1 常用命令

      • 7.2 安装Gitlab

      • 7.3 配置发件邮箱

      • 7.4 创建项目

    • 8. 安装与使用Gitlab Runner

      • 8.1 安装Gitlab Runner

      • 8.2 注册Runner与Demo测试

    • 9. 关机与开机

    • 参考资料

    2. 配置镜像源

    为什么配置镜像源?

    因为Ubuntu系统原始的镜像源地址是国外服务器,国内服务器下载速度非常慢,所以需要替换成国内的镜像源,提高软件下载速度。

    如果是阿里云的服务器,推荐使用阿里云的镜像,如果是华为云的服务器,推荐使用华为云的镜像。

    (笔者华为云的服务器用阿里云的镜像,无法访问,报404错误)

    2.1 配置阿里云镜像源

    阿里云的镜像源网址:https://developer.aliyun.com/mirror/

    阿里云Ubuntu镜像源配置网址:https://developer.aliyun.com/mirror/ubuntu

    主要操作步骤如下:

    A. 备份 sources.list 文件,参考命令:

    sudo cp -a /etc/apt/sources.list /etc/apt/sources.list.bak

    B. 使用熟悉的编辑器(如vi)打开 sources.list,参考命令:

    vi /etc/apt/sources.list

    C. 将所有的 http://archive.ubuntu.com/ 替换为 http://mirrors.aliyun.com/

    D. 保存即可

    E. 执行 apt-get update 更新索引。

    2.2 配置华为云镜像源

    华为云的镜像源网址:https://mirrors.huaweicloud.com/

    A. 备份sources.list ,同上。

    B. 修改sources.list文件,将http://archive.ubuntu.comhttp://security.ubuntu.com替换成http://mirrors.huaweicloud.com,参考命令:

    sudo sed -i "s@http://.*archive.ubuntu.com@http://mirrors.huaweicloud.com@g" /etc/apt/sources.list
    sudo sed -i "s@http://.*security.ubuntu.com@http://mirrors.huaweicloud.com@g" /etc/apt/sources.list

    或者直接使用下面的命令,直接下载替换文件(注意系统是不是bionic版本):

    wget -O /etc/apt/sources.list https://mirrors.huaweicloud.com/repository/conf/Ubuntu-Ports-bionic.list

    C. 保存即可

    D. 执行 apt-get update 更新索引。

    更新镜像源后的 sources.list 文件如下:

    84859f9c2c2510da38a16875d73fa157.png

    3. 安装JDK

    为什么要安装JDK?

    因为项目是Java开发的。

    下文以 JDK 1.8.0_181 为例

    3.1 下载与上传JDK

    Oracle官方下载地址:https://www.oracle.com/java/technologies/javase-downloads.html

    华为云镜像下载地址:https://mirrors.huaweicloud.com/java/jdk/

    可以使用FinalShell进行上传:

    addadce9c9e3f7751f0af940675486c2.png

    3.2 安装与配置环境变量

    主要流程参考命令如下:

    A. 解压缩(在压缩包的目录下运行)

    tar -zxvf jdk-8u181-linux-x64.tar.gz

    B. 创建目录

    mkdir -p /usr/local/java

    Linux系统一般将用户按照的软件放在 usr/local 目录下。

    -p:递归创建,即创建子目录

    C. 移动安装包

    mv jdk1.8.0_181/ /usr/local/java/

    D. 设置所有者

    chown -R root:root /usr/local/java/

    -R :递归设置,即子目录即目录下的所有文件均设置所有者

    E. (可选,一般不用)打开系统环境变量配置文件

    vi /etc/environment

    F. (可选,一般不用)添加环境变量

    # 默认有这行
    PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"

    # 从这里开始添加
    export JAVA_HOME=/usr/local/java/jdk1.8.0_181
    export JRE_HOME=/usr/local/java/jdk1.8.0_181/jre
    export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib

    G. 打开用户环境变量配置文件

    vi /etc/profile

    H. 添加用户环境变量信息

    # 默认有这段
    if [ "$PS1" ]; then
      if [ "$BASH" ] && [ "$BASH" != "/bin/sh" ]; then
        # The file bash.bashrc already sets the default PS1.
        # PS1='\h:\w\$ '
        if [ -f /etc/bash.bashrc ]; then
          . /etc/bash.bashrc
        fi
      else
        if [ "`id -u`" -eq 0 ]; then
          PS1='# '
        else
          PS1='$ '
        fi
      fi
    fi

    if [ -d /etc/profile.d ]; then
      for i in /etc/profile.d/*.sh; do
        if [ -r $i ]; then
          . $i
        fi
      done
      unset i
    fi

    # 从这里开始添加,文件名注意修改为自己的文件名
    export JAVA_HOME=/usr/local/java/jdk1.8.0_181
    export JRE_HOME=/usr/local/java/jdk1.8.0_181/jre
    export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
    export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOME/bin
    # 到这里结束

    I. 使用户环境变量生效

    source /etc/profile

    3.3 测试安装

    java -version

    正确输出:

    3ffe82908b7888b6c3f454d11dee97c6.png

    (可选操作)为其他用户更新用户环境变量:

    su snzl #snzl为其他用户名
    source /etc/profile

    3.4 部分错误示例

    如果安装完成后,提示错误信息
    -bash: /usr/local/java/jdk1.8.0_181/bin/java: cannot execute binary file: Exec format error

    如图:

    785b5d35e746dbb89827a597f6ab2f7f.png

    应考虑:

    ① 给bin文件夹下的文件增加执行权限

    chmod +x filename

    ② 选择的JDK错误,如系统架构(arm64、X64、arm32、X32)等。

    94fcfaf2ec58f2797845f7e493f774fc.png

    4. 安装Maven

    为什么要安装Maven?

    因为项目使用Maven来管理包。

    下文以 maven 3.6.0 为例。

    4.1 下载与上传

    Apache官方下载地址:https://maven.apache.org/download.cgi

    华为云镜像下载地址:https://repo.huaweicloud.com/apache/maven/maven-3/

    上传可以使用FinalShell。

    a0dcc495a2c930cacf0603efb3188248.png

    4.2 安装与配置环境变量

    基本操作方法同JDK,参考命令如下:

    A. 解压缩(在压缩包的目录下运行)

    tar -zxvf apache-maven-3.6.0-bin.tar.gz

    B. 创建目录

    mkdir -p /usr/local/maven

    Linux系统一般将用户按照的软件放在 usr/local 目录下。

    -p:递归创建,即创建子目录

    C. 移动安装包

    mv apache-maven-3.6.0 /usr/local/maven/

    D. 设置所有者

    chown -R root:root /usr/local/maven/

    -R :递归设置,即子目录即目录下的所有文件均设置所有者

    E. 打开用户环境变量配置文件

    vi /etc/profile

    F. 添加用户环境变量信息

    # 默认有这段
    if [ "$PS1" ]; then
      if [ "$BASH" ] && [ "$BASH" != "/bin/sh" ]; then
        # The file bash.bashrc already sets the default PS1.
        # PS1='\h:\w\$ '
        if [ -f /etc/bash.bashrc ]; then
          . /etc/bash.bashrc
        fi
      else
        if [ "`id -u`" -eq 0 ]; then
          PS1='# '
        else
          PS1='$ '
        fi
      fi
    fi

    if [ -d /etc/profile.d ]; then
      for i in /etc/profile.d/*.sh; do
        if [ -r $i ]; then
          . $i
        fi
      done
      unset i
    fi

    # 从这里开始添加, 如果原来有JDK配置,直接追加即可
    export M2_HOME=/usr/local/maven/apache-maven-3.6.0
    export CLASSPATH=$CLASSPATH:$M2_HOME/bin
    export PATH=$PATH:$M2_HOME/bin
    # 到这里结束

    如图:

    e165e27a5ca592eea04afbe4c1a17163.png

    I. 使用户环境变量生效

    source /etc/profile

    4.3 测试安装

    mvn -v

    正确输出:

    fbbc931f0e0784a5bc88de77e3cad0d8.png

    4.4 配置Maven镜像源

    为什么要配置Maven镜像源?

    因为项目要下载各种包,使用国内的镜像源,下载速度快。

    镜像源主要有两个,一般用阿里云或者华为云的。主要看虚拟机的服务商是哪个。

    阿里云Maven镜像源网址:https://developer.aliyun.com/mirror/maven

    阿里云镜像配置:

    aliyunmaven*阿里云公共仓库https://maven.aliyun.com/repository/public

    或(这个好像是旧版,笔者本文用这个)

    alimavencentralaliyun mavenhttp://maven.aliyun.com/nexus/content/repositories/central/

    华为云镜像源网址:https://mirrors.huaweicloud.com/

    华为云镜像源配置:

    huaweicloud*https://repo.huaweicloud.com/repository/maven/

    如何配置?

    其实主要是修改Maven安装目录下的 conf/settings.xml 文件。

    在settings.xml文件的  …… 标签里添加上述配置代码即可。

    b6110193d36ae251a552c00ad0c9dcdd.png

    参考命令:

    vi /usr/local/maven/apache-maven-3.6.0/conf/settings.xml

    注意:

    一般情况下(特别是Windows系统),Maven都会在用户文件夹下生成一个.m2的文件,这个文件是针对当前用户有效的,这个文件夹里也有一个settings.xml文件。如果在这个文件夹下配置上述镜像源,则只针对当前用户有效。一般是多用户系统使用这种配置。

    如何验证配置是否生效?使用下面命令即可:

    mvn help:system

    这个命令是干嘛用的呢?

    官网给出的解释是:Displays a list of the platform details like system properties and environment variables.

    这个命令可以打印出来所有的环境配置,对开发非常有用。

    首次运行的时候,会自动帮我们到Maven中央仓库下载缺省的或者Maven中央仓库更新的各种配置文件和类库(jar包)到Maven本地仓库中。这时候可以观察下载路径,即可判断是否生效。

    5. 安装Docker

    为什么用Docker?

    因为Docker好用。

    5.1 安装Docker.

    参考命令如下:

    A. 卸载旧版本

    apt-get remove docker docker-engine docker.io containerd runc

    B. 使用 APT 安装

    apt install docker.io

    C. 验证安装是否成功

    docker version

    如图:

    a7d068812a01ad0adcc921e51e02a3b2.png

    5.2 配置Docker镜像源

    如果你的服务器是阿里云的,则选择阿里云的镜像加速地址。

    如果你的服务器是华为云的,则选择华为云的镜像加速地址。

    华为云镜像中心网址:https://console.huaweicloud.com/swr/?region=cn-north-4#/app/swr/huaweiOfficialList

    304c36105b757c227c73e28e0f600ec3.png

    阿里云镜像中心网址:https://www.aliyun.com/product/acr?source=5176.11533457&userCode=isjae3ee

    访问后,进入“管理控制台”即可。

    e816463547a8f1d60f980e8b05fbc281.png

    使用下面的命令直接添加到文件(记得替换下面的XXXXXX):

    tee /etc/docker/daemon.json <'EOF'
    {
      "registry-mirrors": ["https://XXXXXX.mirror.swr.myhuaweicloud.com"]
    }
    EOF

    然后重启Docker,使其生效(依次执行):

    systemctl daemon-reload
    systemctl restart docker

    验证配置是否成功:

    docker info

    示例输出(主要看最后几行):

    Client:
     Debug Mode: false

    Server:
     Containers: 0
      Running: 0
      Paused: 0
      Stopped: 0
     Images: 0
     Server Version: 19.03.6
     
    ######  这里省略大段信息

     Insecure Registries:
      127.0.0.0/8
     Registry Mirrors:
      https://XXXXXX.mirror.swr.myhuaweicloud.com/    # 看这里
     Live Restore Enabled: false

    WARNING: No swap limit support

    6. 安装Docker Compose

    为什么用Docker Compose?

    因为Docker Compose项目是 Docker 官方的开源项目,能够实现对 Docker 容器集群的快速编排,非常好用。

    6.1 X64系统的安装与验证

    首先访问Docker Compose的官方开源项目网站:https://github.com/docker/compose/releases ,找到 Latest release 版本,记下版本号。

    e3c256a5a8641d309023ad1b2fb24f8d.png

    然后使用下面的命令一键安装(注意替换版本号):

    curl -L https://github.com/docker/compose/releases/download/1.27.4/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

    如果安装太慢,使用下面的备用链接(注意替换版本号):

    curl -L https://get.daocloud.io/docker/compose/releases/download/1.27.4/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

    很快安装完成,这时docker-compose不是可执行文件。为其增加可执行权限:

    chmod +x /usr/local/bin/docker-compose

    验证安装成功与否的命令如下:

    docker-compose version

    示例输出:

    docker-compose version 1.25.4, build 8d51620a
    docker-py version: 4.1.0
    CPython version: 3.7.5
    OpenSSL version: OpenSSL 1.1.0l  10 Sep 2019

    6.2 Arm64系统的安装与验证

    由于华为鲲鹏服务器采用华为自研cpu ARMv8架构,所以安装方式和一般服务器安装方式不同,即华为云服务器需要用pip方式安装。

    A. 安装pip

    sudo apt-get install libssl-dev libffi-dev python3 python3-pip

    B. 使用pip命令安装Docker Compose。如下:

    pip install docker-compose

    如果用上面这个命令下载很慢的话,替换成国内镜像下载,参考命令如下:

    pip3 install -i https://repo.huaweicloud.com/repository/pypi/simple docker-compose

    pip3 install -i https://mirrors.aliyun.com/pypi/simple docker-compose

    python -m pip install -U -i https://mirrors.aliyun.com/pypi/simple docker-compose

    C. 验证安装成功与否:

    docker-compose version

    D. 安装成功后的输出:

    docker-compose version 1.27.4, build unknown
    docker-py version: 4.3.1
    CPython version: 3.6.9
    OpenSSL version: OpenSSL 1.1.1  11 Sep 2018

    7. 安装Gitlab

    使用Docker Compose一键安装。

    7.1 常用命令

    启动:docker-compose up

    后台启动:docker-compose up -d

    停止:docker-compose down

    查看容器:docker ps

    查看全部容器:docker ps -a

    7.2 安装Gitlab

    Linux有个不成文的规则:所有用户手动安装的软件,均放在 /usr/local/ 目录下,

    首先进入 /usr/local 目录下,创建一个名为 docker 的文件夹,并在该文件夹里创建一个名为 gitlab 的文件夹,用来放Gitlab的配置文件。

    参考命令(依次执行):

    cd /usr/local
    mkdir docker
    cd docker
    mkdir gitlab
    cd gitlab

    然后在 gitlab文件夹下新建一个名为 docker-compose.yaml 的配置文件,名字是固定的.

    vi docker-compose.yaml

    写入内容:

    version: '3'
    services:
        gitlab:
            image: 'twang2218/gitlab-ce-zh'
            restart: always
            # 项目的主机名,填写IP或域名,如果端口号非80,请添加端口号
            hostname: 'gitlab.yourdomain.com'
            environment:
                TZ: 'Asia/Shanghai'
                GITLAB_OMNIBUS_CONFIG: |
                    external_url 'http://gitlab.cxhit.com'
                    gitlab_rails['time_zone'] = 'Asia/Shanghai'
                    gitlab_rails['gitlab_shell_ssh_port'] = 2222
                    unicorn['port'] = 8888
                    nginx['listen_port'] = 80
                    # 配置邮箱,以qq邮箱为例
                    gitlab_rails['smtp_enable'] = true
                    gitlab_rails['smtp_address'] = "smtp.qq.com"
                    gitlab_rails['smtp_port'] = 465
                    gitlab_rails['smtp_user_name'] = "邮箱@qq.com"
                    gitlab_rails['smtp_password'] = "smtp授权码"
                    gitlab_rails['smtp_domain'] = "qq.com"
                    gitlab_rails['smtp_authentication'] = "login"
                    gitlab_rails['smtp_enable_starttls_auto'] = true
                    gitlab_rails['smtp_tls'] = true
                    gitlab_rails['gitlab_email_from'] = "邮箱@qq.com"
                    user['git_user_email'] = "邮箱@qq.com"
            ports:
                - '8099:80'
                - '8443:443'
                - '2222:22'
            volumes:
                - ./config:/etc/gitlab
                - ./data:/var/opt/gitlab
                - ./logs:/var/log/gitlab

    :set paste    使用这个vi命令,原样粘贴。

    端口ports:左边宿主机(即服务器),右边容器

    使用如下命令后台启动容器:

    docker-compose up -d

    -d :后台执行,不加的话,可查看详细启动信息

    7.3 配置发件邮箱

    如果上面的配置中的邮箱无法发送邮件,可采用下面的方式配置。

    首先进入gitlab的安装目录(本文中的/usr/local/docker/gitlab)中的config文件夹下,参考命令:

    cd /usr/local/docker/gitlab/config

    然后查看全部文件,即可看到名为gitlab.rb的文件。

    使用vi编辑器打开:

    vi gitlab.rb

    按 / 后,输入 smtp ,按回车键后,定位到邮件配置模块。

    取消前面所有的 # ,按照下面的示例修改配置:

    ### GitLab email server settings
    ###! Docs: https://docs.gitlab.com/omnibus/settings/smtp.html
    ###! **Use smtp instead of sendmail/postfix.**

    ### 从这里开始,下文以qq邮箱为例
    gitlab_rails['smtp_enable'] = true
    gitlab_rails['smtp_address'] = "smtp.qq.com"
    gitlab_rails['smtp_port'] = 465
    gitlab_rails['smtp_user_name'] = "邮箱@qq.com"
    gitlab_rails['smtp_password'] = "smtp授权码"
    gitlab_rails['smtp_domain'] = "qq.com"
    gitlab_rails['smtp_authentication'] = "login"
    gitlab_rails['smtp_enable_starttls_auto'] = true
    gitlab_rails['smtp_tls'] = true

    ### 下面两行需要手动添加
    gitlab_rails['gitlab_email_from'] = "邮箱@qq.com"
    user['git_user_email'] = "邮箱@qq.com"

    ### 到这里结束
    ###! **Can be: 'none', 'peer', 'client_once', 'fail_if_no_peer_cert'**
    ###! Docs: http://api.rubyonrails.org/classes/ActionMailer/Base.html

    然后进入gitlab容器,参考命令(依次执行):

    docker ps
    sudo docker exec -it 容器ID /bin/bash  

    重新配置,并重启容器,参考命令如下(依次执行,时间较长):

    gitlab-ctl reconfigure
    gitlab-ctl restart

    然后进入gitlab控制台,参考命令:

    gitlab-rails console

    稍等片刻,出来 > 箭头,即可输入发送测试邮件的命令。

    参考命令:

    Notify.test_email('*******@qq.com','email title','email content desc').deliver_now

    如果能收到邮件,则说明配置正确。

    f49babfa13e59e080c29c9ad044c72da.png

    7.4 创建项目

    关于gitlab的具体使用方法,请参考百度。

    主要操作有四个:

    A. commit:是将本地修改过的文件提交到本地库中。有些修改是不需要同步至服务器的,至于什么时候同步,由用户自己选择。

    B. push:是将本地库中的最新信息发送给远程库。

    C. fetch:是将远程主机的最新内容拉到本地,用户在检查了以后决定是否合并到工作本机分支中。

    D.  pull:则是将远程主机的最新内容拉下来后直接合并,即:git pull = git fetch + git merge,这样可能会产生冲突,需要手动解决。

    8. 安装与使用Gitlab Runner

    8.1 安装Gitlab Runner

    官网的安装参考链接:https://docs.gitlab.com/runner/install/linux-manually.html

    命令如下:

    A. 安装(不同系统安装命令不同,详情看上面链接)

    sudo curl -L --output /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64

    B. 授权可执行权限

    sudo chmod +x /usr/local/bin/gitlab-runner

    C. 创建持续集成用户

    sudo useradd --comment 'GitLab Runner' --create-home gitlab-runner --shell /bin/bash

    D. 运行gitlab-runner服务(依次执行)

    sudo gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner
    sudo gitlab-runner start

    如果上面的start命名无法运行,请使用

    sudo gitlab-runner run

    关于gitlab-runner的详细使用方法,可以使用下面的命令查看学习

    gitlab-runner --help

    到这里,gitlab-runner的安装过程结束。

    8.2 注册Runner与Demo测试

    然后我们回到gitlab网站,打开前面创建的Spring Boot项目,在项目页面中找到:设置-》CI/CD,然后展开runner下拉栏:

    d9502058352b2204a082dcfc61e01ea8.png

    在专用Runner栏,继续往下翻,找到URL和Token,我们用的的信息是这两个:

    55fe8c10c5abbf672bc3013356b7dfa2.png

    然后回到服务器,输入下面的命令开始注册:

    gitlab-runner register

    下图(有一些配置错误)仅供参考,详细的说明请继续看:

    a367b13b84a99f0eaec2c348c66d12e4.png

    详细说明如下(注意看注释):

    ### 输入注册的命令:
    root@ubuntu:/usr/local/docker/gitlab# sudo gitlab-runner register

    Runtime platform                                    arch=amd64 os=linux pid=128903 revision=e95f89a0 version=13.4.1
    Running in system-mode.

    ### 输入注册的URL,复制上面的
    Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com/):
    http://Your IP:8099/

    ### 输入注册的token,复制上面的
    Please enter the gitlab-ci token for this runner:
    XXXXXXXXXXXX

    ### 输入项目描述。可以为空
    Please enter the gitlab-ci description for this runner:
    [ubuntu]: project description

    ### 输入项目的标签。
    ### 注意:填写标签后,每次push项目中的job有此标签,才会触发持续集成操作
    ### 如果为空,则每次提交都触发。
    Please enter the gitlab-ci tags for this runner (comma separated):
    test,deploy

    Registering runner... succeeded                     runner=27ZJ1iAs

    ### 选择执行器,一般选择shell。
    Please enter the executor: shell, ssh, virtualbox, docker+machine, docker-ssh+machine, custom, docker-ssh, kubernetes, docker, parallels:
    shell

    Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded! 

    至此,返回到gitlab网站,刷新页面,在专用Runner栏往下翻,即可看到注册成功的Runner:

    a5213f064873304ccc2ba6b0ee8924c2.png

    然后返回到本地的项目,在项目的根目录,创建两个文件,并分别写入如下内容:

    8d9eea6acf5adb44d581424ef8665e24.png

    .gitlab-ci.yml :

    stages:
    - deploy #步骤名称

    deploy:
      stage: deploy #步骤名称
      only:
      - master #当且仅当master分支合并时 出发该ci脚本
      script:  #ci脚本
      ### 执行mvn命令打包,生成jar包
      - mvn clean package 
      ### 执行docker命令创建镜像,调用Dockerfile文件
      - "docker build . -t cicdtest:last"
      ### 停止镜像cicdtest_image,因为有修改
      - docker stop cicdtest_image || true
      ### 删除镜像cicdtest_image,即清理历史镜像
      - docker rm cicdtest_image || true
      ### 重新构建镜像,8181端口是服务器的端口,8080端口是容器的端口,即项目中设置的端口(默认8080)
      - docker run --name cicdtest_image -p 8181:8080 -d cicdtest:last

    Dockerfile :

    # 构建docker镜像
    # 基础镜像使用Java
    FROM openjdk:8-jdk-alpine
    # 作者
    MAINTAINER cxh
    # VOLUME指定了临时文件目录为/tmp
    # 其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp
    VOLUME /tmp
    # 将jar包添加到容器中并更名为app.jar
    # 注意:这个jar包文件名,请前方服务器 目录查看
    COPY target/cicdtest-0.0.1-SNAPSHOT.jar /app/app.jar

    # 这个暂且不用
    # COPY target/lib /app/lib

    ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","-Dspring.profiles.active=prod","/app/app.jar"]

    上面两个文件写完后,在项目的Controller类中写几个测试用例:

    package com.cicdtest.cicdtest.controller;

    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.PathVariable;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;

    @RestController
    @RequestMapping(value = "/user")
    public class UserController {

        @GetMapping(value = "/getInfo/{id}")
        public String getInfo(@PathVariable String id){
            return "获取ID为"+id+"的用户的信息";
        }
    }

    然后执行CommitPush命令,将项目推送到Gitlab。

    返回Gitlab网站,查看侧边栏的 CI/CD -> 流水线 模块,即可看到提交的项目正在构建。

    2fe96d268a8ea8ccb25603765906be2a.png

    然后点击 上图标注 位置的按钮,进入新页面,点击 下图标注的位置:

    023ada315f7eb1f8574b12b1448a7252.png

    即可查看详细执行的命令:

    01b00c87a7fac6ff0f0086d9c2744c2c.png

    这里可以观察项目部署中的错误,及时调整和修改**.gitlab-ci.yml**、Dockerfile两个文件。

    然后,通过服务器IP加端口的形式,即可访问Demo中的实例:

    3809a37fb574c492301bfd70f758f509.png

    至此,测试人员、前端开发人员即可调用该API。

    9. 关机与开机

    如果是本地虚拟机里创建的服务器,关机前,记得在服务器将所有镜像停止,再关机,否则关机时,会花费较长的时间:

    docker ps
    docker stop 镜像ID

    前面配置中,gitlab已经设置了开机自启。

    如果下次开机时,很长时间(5分钟以上),gitlab没有启动,可使用下面命令开启:

    docker-compose up -d

    gitlab-runner 启动命令:

    gitlab-runner run

    参考资料

    [1] https://mirrors.huaweicloud.com/
    [2] https://www.zxdmy.com/?id=21
    [3] https://blog.csdn.net/Delicious_Life/article/details/104623788/
    [4] https://blog.csdn.net/weixx3/article/details/80331538
    [5] https://www.zhihu.com/question/396914065
    [6] http://maven.apache.org/plugins/maven-help-plugin/system-mojo.html
    [7] https://www.cnblogs.com/Lints/p/11163073.html
    [8] https://www.zxdmy.com/?id=33
    [9] https://blog.csdn.net/weixin_44456979/article/details/105718165
    [10] https://blog.csdn.net/smiletudy/article/details/104840048
    [11] https://www.cnblogs.com/sanduzxcvbnm/p/13820198.html
    [12] https://www.cnblogs.com/xhyan/p/6593075.html
    [13] https://blog.csdn.net/SirLZF/article/details/88998450
    [14] https://zhuanlan.zhihu.com/p/86158304 
    [15] https://www.cnblogs.com/sanduzxcvbnm/p/13820198.html
    [16] https://blog.csdn.net/weixin_43915643/article/details/105991904
    [17] https://blog.csdn.net/wbf810207/article/details/90412358
    [18] https://blog.csdn.net/aixiaoyang168/article/details/72168834

    — The End —

    5260d5b15af98dceb70f150590e6fb74.png推荐文章
    • 【Linux学习】1. 安装Ubuntu Server 18.04 LTS

    • 【Docker学习】1. Linux中安装Docker

    • 【Docker学习】5. Docker-Compose的简介与安装

    f4f6b47f4a3e95cae7f1161051b40ffd.png56d6e415c1b40e1fde349e62151d04fc.pngd6d194fe02a9caf8a18fc4742e82956b.pngd9d175e5f5b2bc2e723ce4c613404431.png

    觉得有帮助,欢迎赞赏

    7bd8ffd4d46ab9fe5309502dd363a389.png

    94bfc20ee0aadcdb88d384fd5996d932.gif

    展开全文
  • gitlab runner

    2019-08-15 20:02:00
    curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-ci-multi-runner/script.rpm.sh | sudo bash sudo yum install gitlab-ci-multi-...
    curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-ci-multi-runner/script.rpm.sh | sudo bash
    
    sudo yum install gitlab-ci-multi-runner
    
    # 在root下执行
    # 删除服务
    gitlab-ci-multi-runner uninstall
    # 添加服务
    gitlab-ci-multi-runner install --working-directory /home/jack --user jack
    # 重启服务
    gitlab-ci-multi-runner restart
    # 查看状态
    gitlab-ci-multi-runner status
    输出:gitlab-runner: Service is running!
    # 查看是否生效
    ps -ef | grep gitlab-runner
    输出:root     17454     1  0 Mar23 ?        01:18:03 /usr/bin/gitlab-runner run --working-directory /home/jack --config /etc/gitlab-runner/config.toml --service gitlab-runner --syslog --user jack
    
    

    转载于:https://my.oschina.net/suveng/blog/3093128

    展开全文
  • 搭建gitlab runner

    2021-04-01 11:32:45
    一、docker 安装gitlab runner 使用本地卷安装GitLab 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 安装gitlab runner

    安装gitlab

    docker run -d  -p 443:443 -p 8880:80 -p 222:22 --name gitlab --restart always -v /home/gitlab/config:/etc/gitlab -v /home/gitlab/logs:/var/log/gitlab -v /home/gitlab/data:/var/opt/gitlab gitlab/gitlab-ce

    使用本地卷安装GitLab 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

    在/home/gitlab/config/gitlab.rb  文件下,修改域名

    /home/gitlab/data/gitlab-rails/etc/gitlab.yml

    同步配置

    docker exec -it gitlab /bin/bash
    gitlab-ctl restart

     

    三、配置项目

    到gitlab项目下的 setting-> CI/CD ->Runners

    获取gitlab地址和token

    运行配置命令:

    docker exec -it gitlab-runner gitlab-ci-multi-runner register

    填入配置信息:

    刷新gitlab 页面,即可看到配置的runner

    打开/srv/gitlab-runner/config/config.toml文件,添加以下文本,使用本地镜像

    pull_policy = "if-not-present"

    三、配置.gitlab-ci.yml

    stages:
      - build
    
    job_build:
      stage: build
      script:
        - bash scripts/run_ner_crf.sh
      only:
        - master

     

    展开全文
  • GitLab CI GitLab Runner配置 - 初级篇

    千次阅读 2019-01-07 20:52:57
    配置GitLab Runner 注册GitLab Runner GitLab Community Edition 11.5.1 GitLab CI GitLab Runner配置 - 初级篇GitLab Runner端注册Runner注册GitLab Runner - Shell版和Docker版单句注册指令GitLab服务端配置...

    参考官网:
    配置GitLab Runner
    注册GitLab Runner

    GitLab Community Edition 11.5.1

    GitLab Runner端注册Runner


    注册GitLab Runner - Shell版和Docker版

    注册GitLab Runner,来实现,Runner 和 GitLab的绑定。按照以下步骤进行注册,步骤输入结束回车即可。

    1. 已经安装启动对应版本GitLab,开始注册:
    # Shell 版
    $ sudo gitlab-runner register
    
    # Docker 版
    $ sudo docker exec -it gitlab-runner gitlab-runner register
    
    # 输入指令后的提示信息,完全一样:
    Runtime platform                                    arch=amd64 os=linux pid=15381 revision=7f00c780 version=11.5.1
    Running in system-mode.                            
                                                       
    Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com/):
    
    1. 按照提示,输入GitLab服务器的URL:
     Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com )
    # Shell 版 ,Docker 版,输入GitLab-CI的交互地址,
    http://192.168.xxx.xxx/
    
    1. 输入GitLab服务器中对应的Token:
     Please enter the gitlab-ci token for this runner
    # Shell 版,Docker 版
    xSZfxpaqsbcEdg-D5VMR
    

    怎样获取Token??首先打开任意一个项目project,按照如下步骤:
    GitLab11.5.XGitLab11.5.X
    4. 输入Runner的描述,您创建之后可以在GitLab UI界面修改:

     Please enter the gitlab-ci description for this runner:
    [ubuntu]: 
    # Shell 版, Docker 版,输入以下描述
    我是描述,说明我的特点作用
    
    1. 输入标签用于关联项目和Runner,您创建之后可以在GitLab UI界面修改:
     Please enter the gitlab-ci tags for this runner (comma separated):
    # Shell 版,Docker 版,标签,当有几个标签可以用‘,’分开
    tag1,tag2,tag-tag
    
    1. 输入Runner执行者:
     Please enter the executor: ssh, docker+machine, docker-ssh+machine, kubernetes, docker, parallels, virtualbox, docker-ssh, shell:
    
    # Shell 版, Docker 版,常用的ssh,docker
     docker
    
    1. 如果您选择Docker作为执行者,接下来还需要为项目设置默认的镜像(如果项目.gitlab-ci.yml没有指定镜像的话,则使用这个镜像)
     Please enter the Docker image (eg. ruby:2.1):
    # Shell 版,Docker 版
    ruby:2.1
    

    GitLab Runner端,整体2-7步骤,如图:
    GitLab-runner11.5.XGitLab 服务端,如图:
    GitLab-runner11.5.X

    单句注册指令

    如果您想使用非交互模式注册Runner,您可以使用一下指令:

    # shell 版
    sudo gitlab-runner register \
      --non-interactive \
      --url "http://192.168.xxx.xxx/" \
      --registration-token "xSZfxpaqsbcEdg-D5VMR" \
      --executor "docker" \
      --docker-image ruby:2.1 \
      --description "我是描述,说明我的特点作用" \
      --tag-list "tag1,tag2,tag-tag" \
      --run-untagged \
      --locked="false" \
    
    # Docker 版
    sudo docker exec -it gitlab-runner gitlab/gitlab-runner register \
      --non-interactive \
      --executor "docker" \
      --docker-image ruby:2.1 \
      --url "http://192.168.xxx.xxx/" \
      --registration-token "xSZfxpaqsbcEdg-D5VMR" \
      --description "我是描述,说明我的特点作用" \
      --tag-list "tag1,tag2,tag-tag" \
      --run-untagged \
      --locked="false"
    

    这种方法的好处:1.可利用于自动化配置Runner。 2.可以添加,额外的参数,交互中没有的参数,例如上面例子的“–locked”、“–run-untagged”

    GitLab服务端配置Runner


    1. 如下图,点击对应Runner,打开设置页面:

    GitLab-runner11.5.X

    1. Runner配置详情,待续…

    GitLab11.5.X

    GitLab Runner端配置Runner


    配置文件

    主要基于Gitlab Runner的配置文件

    • Shell版本:
     sudo vim /etc/gitlab-runner/config.toml
    
    • Docker版本,基于挂载目录:
    # 容器外面
     sudo vim /srv/gitlab-runner/config/config.toml
    

    更多详情,请移步下篇

    展开全文
  • 2.GitLabRunner实践

    2020-05-12 11:10:23
    GitLabRunner实践 ????您好,本模块主要讲解GitLabRunner实践,属于基础知识自由选择跳过! 章节名称 章节内容 2-1 GitlabRunner简介 基本概念、特点、功能 2-2 GitLabRunner安装 通过不同的方式安装...
  • Gitlab Runner 官方简介

    2020-11-06 16:16:53
    什么是 Runner:what is Gitlab runner Runners are the agents that run the CI/CD jobs that come from GitLab. 安装 Runner 的途径:Install Gitlab runner install GitLab Runner on a machine that’s ...
  • Docker 安装 GitLab Runner

    2020-07-17 18:28:51
    使用本地卷安装GitLab 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-...
  • GitLab Runner的Ansible角色 GitLab Runner安装程序的Ansible角色。 要求 此角色要求Ansible 2.10或更高版本。 该角色设计用于: Ubuntu 18.04、20.04、20.10、21.04 CentOS 7、8流 openSUSE Leap 15.2,风滚草 ...
  • gitlab runner命令

    万次阅读 2019-03-26 19:31:10
    GitLab Runner命令 GitLab Runner包含一组命令,您可以使用这些命令注册,管理和运行构建。 您可以通过执行以下命令来检查最近的命令列表: gitlab-runner --help --help在命令后附加以查看其特定的帮助页面: ...
  • 2.1 GitlabRunner简介

    2020-05-12 11:11:54
    GitlabRunner简介 Gitlab-runner GitLab Runner是一个开源项目,用于运行您的作业并将结果发送回GitLab。它与GitLab CI结合使用,GitLab CI是GitLab随附的用于协调作业的开源持续集成服务。 要求 GitLab ...
  • GitLab Runner使用

    2019-01-08 14:14:49
    在服务器上安装GitLab Runner 添加yum原 # CentOS系统 curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.rpm.sh | sudo bash 安装 # CentOS系统 sudo yum install ...
  • gitlab-formula:用Salt安装GitLab Runner
  • 关于Docker中安装Gitlab Runner -> Docker安装Gitlab runner 关于Gitlab Runner的注册 & 使用 -> 官网资料 官网有:GNU/Linux、macOS、Windows、FreeBSD、Docker的注册、使用的文档 本文只讲述Docker中Git...
  • gitlab runner 指令指南

    千次阅读 2018-02-23 20:32:33
    GitLab Runner Commands GitLab Runner contains a set of commands with which you register, manage and run your builds. You can check a recent list of commands by executing: gitlab-runner --help A...
  • 2.3 GitLabRunner注册

    2020-05-12 11:21:04
    GitLabRunner 类型 shared : 运行整个平台项目的作业(gitlab) group: 运行特定group下的所有项目的作业(group) specific: 运行指定的项目作业(project) locked: 无法运行项目作业 paused: 不会运行...
  • gitlab runner使用教程

    千次阅读 2019-09-20 15:15:36
    1.docker下使用gitlab-runner Run GitLab Runner in a container – gitlab 1.1.安装docker # 如果yum-config-manager不可用:yum -y install yum-utils yum-config-manager --add-repo https://download.do...
  • 2.4 GitLabRunner命令

    2020-05-12 11:24:04
    GitLab Runner包含一组命令,可用于注册,管理和运行构建。...gitlab-runner run #普通用户模式 配置文件位置 ~/.gitlab-runner/config.toml sudo gitlab-runner run # 超级用户模式 配置文件位置/
  • Gitlab CI集成Gitlab Runner

    千次阅读 2017-12-12 11:00:49
    关于Gitlab CI与Gitlab Runner的概念自行百度,此处不做赘述;Gitlab8.0之后已经集成了Gitlab CI;集成环境:CentOS6.5+Gitlab8.2.3-4+Gitlab Runner1.10.7-11、添加GitLab官方库curl -L ...
  • 适用于GitLab Runner的流浪者盒包装 -- GitLab是一个完整的DevOps平台,可作为单个应用程序交付。 这使GitLab变得独一无二,并使并发DevOps成为可能,从而使您的组织摆脱拼凑在一起的工具链的束缚。 加入我们,...
  • GitLab Runner部署(kubernetes环境)

    千次阅读 2020-06-28 08:06:13
    记录K8S环境部署GitLab Runner的详细步骤
  • 文章目录环境背景分析和问题分解问题解决记录拓展Gitlab Runner预定义变量gitlab-runner的项目配置 环境 操作系统:Centos 6 架构:x86_64 包:gitlab-runner-i686.rpm 背景 对于Gitlab Runner,网友们普遍的教程为...
  • 上回书 说到,我们在虚拟机 centOS 中安装好了 gitlab 并且可以看到界面了,这次我们来注册一个 gitlab runner。 首先在 mac 上通过 brew 安装gitlab runner,具体安装看这里 这里的步骤可以查看之前写的的文档翻译...
  • GitLab Runner CI/DI一、 拉取镜像二、创建容器三、注册gitlab-runner(将gitlabgitlab-runner关联)四、编写 .gitlab-ci.yml五、提交代码测试runner 运行环境 centos 7.8 内存配置4G (非常占用内存,所以尽可能...
  • GitLab - Ubuntu18注册GitLab Runner 系统 Ubuntu 18.4 gitlab版本 11.11.0 ...1.下载gitlab-runner ...apt-get install gitlab-runner ...1.打开gitlabRunner Page,查看gitlab实例...
  • 使用Prometheus对GitLab Runner监控1.1 配置GitLab Runner监控1.2 配置GitLabCI 流水线监控本文主要阐述如何配置GitLabRunner和G...
  • 超详细Gitlab Runner环境配置中文教程

    万次阅读 2018-05-26 10:39:22
    配置GitRunner环境 ... GitLab Runner 配合GitLab CI(GitLab 内置的持续集成服务) 协调完成任务。 本文将记录将一台闲置的iMac mini配置React Native的runner环境。 其他平台可以参考https://docs.gitla...
  • GitLab Runner can use Docker to run jobs on user provided images. This is possible with the use of Docker executor. The Docker executor when used with GitLab CI, connects to Docker Engine and runs ...
  • gitlab runner实现自动化部署

    千次阅读 2020-03-02 11:45:58
    GitLab Runner是一个开源的项目,是用来执行GitLab中的项目的根目录下创建的.gitlab-ci.yml 脚本的工具。GitLab-CI可以比喻成管理工人的工厂,Runner是工厂里的工人,每个工人需要在工厂进行注册,所负责的项目不同...
  • Gitlab Runner持续集成项目部署dependencies 部署到nexus 上registry 私服配置Ubuntu git 拉取代码配置gitlab-runner 持续部署配置 项目部署 项目基于博客 springCould 基础服务搭建 之后编写的代码...
  • gitlabrunner做持续集成

    2019-01-10 21:45:10
    gitlabrunner做持续集成 使用 GitLab Runner Docker 环境准备 创建工作目录 /usr/local/docker/runner 创建构建目录 /usr/local/docker/runner/environment 下载 jdk-8u152-linux-x64.tar.gz 并复制到 /usr/local/...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,207
精华内容 2,082
关键字:

gitlabrunner