安装 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,用于配置加速器和仓库地址
{"registry-mirrors": ["https://registry.docker-cn.com"],"insecure-registries": ["192.168.10.133:5000"]}
Dockerfile
在 /usr/local/docker/runner/environment 目录下创建 Dockerfile
FROM gitlab/gitlab-runner:v11.1.0MAINTAINER happyxianyu <hzlim.xy@qq.com># 修改软件源RUN echo 'deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse' > /etc/apt/sources.list && \echo 'deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse' >> /etc/apt/sources.list && \echo 'deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse' >> /etc/apt/sources.list && \echo 'deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse' >> /etc/apt/sources.list && \apt-get update -y && \apt-get clean# 安装 DockerRUN apt-get -y install apt-transport-https ca-certificates curl software-properties-common && \curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | apt-key add - && \add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" && \apt-get update -y && \apt-get install -y docker-ceCOPY daemon.json /etc/docker/daemon.json# 安装 Docker ComposeWORKDIR /usr/local/binRUN wget https://raw.githubusercontent.com/topsale/resources/master/docker/docker-composeRUN chmod +x docker-compose# 安装 JavaRUN mkdir -p /usr/local/javaWORKDIR /usr/local/javaCOPY jdk-8u152-linux-x64.tar.gz /usr/local/javaRUN tar -zxvf jdk-8u152-linux-x64.tar.gz && \rm -fr jdk-8u152-linux-x64.tar.gz# 安装 MavenRUN mkdir -p /usr/local/mavenWORKDIR /usr/local/maven# RUN wget https://raw.githubusercontent.com/topsale/resources/master/maven/apache-maven-3.5.3-bin.tar.gzCOPY apache-maven-3.6.1-bin.tar.gz /usr/local/mavenRUN 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_152ENV MAVEN_HOME /usr/local/maven/apache-maven-3.6.1ENV PATH $PATH:$JAVA_HOME/bin:$MAVEN_HOME/binWORKDIR /
docker-compose.yml
version: '3.6'services:gitlab-runner:build: environmentrestart: alwayscontainer_name: gitlab-runnerprivileged: truevolumes:- ./config:/etc/gitlab-runner- /var/run/docker.sock:/var/run/docker.sock
注册Runner
docker exec -it gitlab-runner gitlab-runner register# 输入 GitLab 地址Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com/):http://vps.icebcloud.cn:4002/# 输入 GitLab TokenPlease enter the gitlab-ci token for this runner:1Lxq_f1NRfCfeNbE5WRh# 输入 Runner 的说明Please enter the gitlab-ci description for this runner:可以为空# 设置 Tag,可以用于指定在构建规定的 tag 时触发 ciPlease enter the gitlab-ci tags for this runner (comma separated):deploy# 这里选择 true ,可以用于代码上传后直接执行Whether to run untagged builds [true/false]:true# 这里选择 false,可以直接回车,默认为 falseWhether to lock Runner to current project [true/false]:false# 选择 runner 执行器,这里我们选择的是 shellPlease enter the executor: virtualbox, docker+machine, parallels, shell, ssh, docker-ssh+machine, kubernetes, docker, docker-ssh:shell
