安装 GitLab Runner

环境准备

  • 创建工作目录 /usr/local/docker/runner
  • 创建构建目录 /usr/local/docker/runner/environment
  • 下载 jdk-8u152-linux-x64.tar.gz 并复制到 /usr/local/docker/runner/environment
  • 下载 apache-maven-3.6.1-bin.tar.gz 并复制到 /usr/local/docker/runner/environment

daemon.json

/usr/local/docker/runner/environment 目录下创建 daemon.json,用于配置加速器和仓库地址

  1. {
  2. "registry-mirrors": [
  3. "https://registry.docker-cn.com"
  4. ],
  5. "insecure-registries": [
  6. "192.168.10.133:5000"
  7. ]
  8. }

Dockerfile

/usr/local/docker/runner/environment 目录下创建 Dockerfile

  1. FROM gitlab/gitlab-runner:v11.1.0
  2. MAINTAINER happyxianyu <hzlim.xy@qq.com>
  3. # 修改软件源
  4. RUN echo 'deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse' > /etc/apt/sources.list && \
  5. echo 'deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse' >> /etc/apt/sources.list && \
  6. echo 'deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse' >> /etc/apt/sources.list && \
  7. echo 'deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse' >> /etc/apt/sources.list && \
  8. apt-get update -y && \
  9. apt-get clean
  10. # 安装 Docker
  11. RUN apt-get -y install apt-transport-https ca-certificates curl software-properties-common && \
  12. curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | apt-key add - && \
  13. add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" && \
  14. apt-get update -y && \
  15. apt-get install -y docker-ce
  16. COPY daemon.json /etc/docker/daemon.json
  17. # 安装 Docker Compose
  18. WORKDIR /usr/local/bin
  19. RUN wget https://raw.githubusercontent.com/topsale/resources/master/docker/docker-compose
  20. RUN chmod +x docker-compose
  21. # 安装 Java
  22. RUN mkdir -p /usr/local/java
  23. WORKDIR /usr/local/java
  24. COPY jdk-8u152-linux-x64.tar.gz /usr/local/java
  25. RUN tar -zxvf jdk-8u152-linux-x64.tar.gz && \
  26. rm -fr jdk-8u152-linux-x64.tar.gz
  27. # 安装 Maven
  28. RUN mkdir -p /usr/local/maven
  29. WORKDIR /usr/local/maven
  30. # RUN wget https://raw.githubusercontent.com/topsale/resources/master/maven/apache-maven-3.5.3-bin.tar.gz
  31. COPY apache-maven-3.6.1-bin.tar.gz /usr/local/maven
  32. RUN tar -zxvf apache-maven-3.6.1-bin.tar.gz && \
  33. rm -fr apache-maven-3.6.1-bin.tar.gz
  34. # COPY settings.xml /usr/local/maven/apache-maven-3.6.1/conf/settings.xml
  35. # 配置环境变量
  36. ENV JAVA_HOME /usr/local/java/jdk1.8.0_152
  37. ENV MAVEN_HOME /usr/local/maven/apache-maven-3.6.1
  38. ENV PATH $PATH:$JAVA_HOME/bin:$MAVEN_HOME/bin
  39. WORKDIR /

docker-compose.yml

  1. version: '3.6'
  2. services:
  3. gitlab-runner:
  4. build: environment
  5. restart: always
  6. container_name: gitlab-runner
  7. privileged: true
  8. volumes:
  9. - ./config:/etc/gitlab-runner
  10. - /var/run/docker.sock:/var/run/docker.sock

注册Runner

  1. docker exec -it gitlab-runner gitlab-runner register
  2. # 输入 GitLab 地址
  3. Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com/):
  4. http://vps.icebcloud.cn:4002/
  5. # 输入 GitLab Token
  6. Please enter the gitlab-ci token for this runner:
  7. 1Lxq_f1NRfCfeNbE5WRh
  8. # 输入 Runner 的说明
  9. Please enter the gitlab-ci description for this runner:
  10. 可以为空
  11. # 设置 Tag,可以用于指定在构建规定的 tag 时触发 ci
  12. Please enter the gitlab-ci tags for this runner (comma separated):
  13. deploy
  14. # 这里选择 true ,可以用于代码上传后直接执行
  15. Whether to run untagged builds [true/false]:
  16. true
  17. # 这里选择 false,可以直接回车,默认为 false
  18. Whether to lock Runner to current project [true/false]:
  19. false
  20. # 选择 runner 执行器,这里我们选择的是 shell
  21. Please enter the executor: virtualbox, docker+machine, parallels, shell, ssh, docker-ssh+machine, kubernetes, docker, docker-ssh:
  22. shell