安裝gitlab-runner,註冊runner到gitlab

首先服務器要安裝gitlab
gitlab服務器如果低於9.0版本,gitlab-runner要選低版本
這裏gitlab 版本 8.8.0, gitlab-runner版本 v1.11.1
gitlab安裝不多做敘述,安裝gitlab-runner

這裏有個重要的,如果是docker部署的gitlab,宿主機端口如果映射的不是80,則需更改環境external_url=域名,否則會報以下錯誤

端口已經改了不是80了
fatal: unable to access 'http://gitlab-ci-token:[email protected]/dlh/citest.git/': Failed to connect to 47.94.156.123 port 80: Connection refused
創建工作目錄 /usr/local/docker/runner
創建構建目錄 /usr/local/docker/runner/environment
下載 jdk-8u11-linux-x64.tar.gz 並複製到 /usr/local/docker/runner/environment
下載 apache-maven-3.6.1-bin.tar.gz 並複製到 /usr/local/docker/runner/environment

在 /usr/local/docker/runner/environment 目錄下創建 Dockerfile,安裝jdk還有maven到容器裏

這裏使用的gitlab版本爲8.8.0社區版,gitlab-runner只能使用2.0以下的版本

FROM gitlab/gitlab-runner:v1.11.1
MAINTAINER dlh [email protected]

# 安裝 Java
RUN mkdir -p /usr/local/java
WORKDIR /usr/local/java
COPY jdk-8u11-linux-x64.tar.gz /usr/local/java
RUN tar -zxvf jdk-8u11-linux-x64.tar.gz && \
    rm -fr jdk-8u11-linux-x64.tar.gz
# 安裝 Maven
RUN mkdir -p /usr/local/maven
WORKDIR /usr/local/maven
# RUN wget https://raw.githubusercontent.com/topsale/resources/master/maven/apache-maven-3.5.3-bin.tar.gz
COPY apache-maven-3.6.1-bin.tar.gz /usr/local/maven
RUN tar -zxvf apache-maven-3.6.1-bin.tar.gz && \
    rm -fr apache-maven-3.6.1-bin.tar.gz
# COPY settings.xml /usr/local/maven/apache-maven-3.6.1/conf/settings.xml

# 配置環境變量
ENV JAVA_HOME /usr/local/java/jdk1.8.0_11
ENV MAVEN_HOME /usr/local/maven/apache-maven-3.6.1
ENV PATH $PATH:$JAVA_HOME/bin:$MAVEN_HOME/bin
WORKDIR /

在 /usr/local/docker/runner 目錄下創建 docker-compose.yml

version: '3.1'
services:
  gitlab-runner:
    build: environment
    restart: always
    container_name: gitlab-runner
    privileged: true
    volumes:
      - ./config:/etc/gitlab-runner
      # 映射docker命令
      - /var/run/docker.sock:/var/run/docker.sock
      - /bin/docker:/bin/docker

執行docker-compose -f docker-compose.yml up -d

查詢正在運行的容器
docker ps
進入到容器裏
docker exec -it 0be3ea7795b1 bash
設置maven變量到系統配置
vi /etc/profile
加上
export PATH=$PATH:$MAVEN_HOME/bin
然後 source /etc/profile
這一步很重要
// 進入容器 進行gitlab-runner 註冊
root@0be3ea7795b1:/# gitlab-runner register
執行完後會有提示,輸入幾個內容
這個鏈接在 gitlab設置裏的runner裏有

步驟
輸入Gitlab CI地址  http://47.94.156.123:8099
輸入項目Gitlab CI token  HMgHedsyRsd9LySEDQjH
輸入Gitlab Runner描述  ci-test
輸入Gitlab Runner標籤  test-tag
輸入Gitlab Runner執行的語言  shell


root@44914cf556e1:/# gitlab-runner register
Running in system-mode.                            
                                                   
Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com/):
http://47.94.156.123:8099
Please enter the gitlab-ci token for this runner:
HMgHedsyRsd9LySEDQjH
Please enter the gitlab-ci description for this runner:
[44914cf556e1]: gitlab-rn^Hunner-test2
Please enter the gitlab-ci tags for this runner (comma separated):
git-test1
Whether to run untagged builds [true/false]:
[false]: true
Registering runner... succeeded                     runner=HMgHedsy
Please enter the executor: docker, docker-ssh, parallels, shell, docker-ssh+machine, kubernetes, ssh, virtualbox, docker+machine:
shell
Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded! 

.gitlab-ci.yml文件放在項目根目錄下


在gitlab上,gitlab-runner執行ci報錯fatal: unable to access 'http://gitlab-ci-token:xxxxxx@ip/xxx/citest.git

gitlab爲8.x版本的會這樣,如果是docker部署的gitlab,宿主機端口如果映射的不是80,則需更改環境external_url=域名,否則會報以下錯誤
fatal: unable to access 'http://gitlab-ci-token:xxxxxx@ip/xxx/citest.git/': Failed to connect to xx.xx.xx.xxx port 80: Connection refused

gitlab爲8.x以上的版本,在創建runner的時候,用交互式去創建

 gitlab-runner register -n \
   --url http://xxxxxx/ci/ \
   --registration-token xxxx \
   --executor docker \
   --description "runner1" \
   --docker-image "docker:stable" \
   --clone-url http://xxxxx 
加上clone-url參數

或者在/etc/gitlab-runner/config.toml文件裏

[[runners]]
  name = "test11"
  url = "http://xxxx"
  token = "xxxx"
  executor = "docker"
  #加上這個clone_url 參數,指定 url
  clone_url = "xxx"
  [runners.docker]
    tls_verify = false
    image = "docker:stable"
    privileged = false
    disable_cache = false
    volumes = ["/cache"]
  [runners.cache]

參考文章

作者:擼帝
鏈接:https://www.jianshu.com/p/2a0f1e109c71
來源:簡書
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章