本地搭建gitlab,并注册gitlab-runner

742 阅读2分钟

安装gitlab

安装部署针对不同的操作系统和不同的安装方式有多种,我们以macOs系统+docker方案来。

官网文档:docs.gitlab.com/ee/install/…

1. 配置环境变量

# 配置变量
export GITLAB_HOME=$HOME/gitlab
# 看变量是否配置成功
echo $GITLAB_HOME

2. 拉取镜像并运行容器

sudo docker run -d \ --hostname gitlab.example.com \ --publish 443:443 --publish 80:80 --publish 22:22 \ --name gitlab \ --restart always \ --volume $GITLAB_HOME/config:/etc/gitlab \ --volume $GITLAB_HOME/logs:/var/log/gitlab \ --volume $GITLAB_HOME/data:/var/opt/gitlab \ --shm-size 256m \ gitlab/gitlab-ee:latest

不需要https,可以省略 --publish 443:443--publish 22:22是配置ssh的,我们在使用ssh模式clone仓库的时候需要用,--publish 80:80为默认的http端口,这里的端口推荐使用默认的,不然后面git clone,以及配置gitlab runner的时候会比较麻烦。

由于容器内部服务启动较慢,容器跑起来后,访问系统是

3. 查看root密码

默认管理员账号是root,密码通过如下命令查看

sudo docker exec -it gitlab grep 'Password:' /etc/gitlab/initial_root_password

安装gitlab-runner

官网文档:docs.gitlab.com/runner/inst… 我们也以macOs系统做示例。

1. 拉取镜像并运行容器

docker run -d --name gitlab-runner --restart always \ -v /Users/Shared/gitlab-runner/config:/etc/gitlab-runner \ -v /var/run/docker.sock:/var/run/docker.sock \ gitlab/gitlab-runner:latest

这一步是把runner自身的服务跑起来。

在 linux 上,使用/srv而不是/Users/Shared.

2. 把runner注册到gitlab

docker run --rm -it -v /Users/Shared/gitlab-runner/config:/etc/gitlab-runner gitlab/gitlab-runner register

这一步是调用runner中的register脚本,然后根据输入提示来注册。 这个容器运行完会自动删除,只是用来注册用的。

# 输入的参数主要如下
--url "https://gitlab.com/" #gitlab的地址,在gitlab——>settings——>ci/cd中可以看到
--registration-token "PROJECT_REGISTRATION_TOKEN" #注册的token,在gitlab——>settings——>ci/cd中可以看到,注意项目指定runner的token和共享runner的token是不一样的,如果想注册共享token,请使用share runner token。
--executor "docker"  #表示runner运行模式
--docker-image alpine:latest  #运行docker的基础镜像,主要用来编译的,比如前端使用node镜像即可
--description "docker-runner"  #runner的描述
--tag-list "docker" #runner的tag标签,在注册成功后,gitlab上可以看到,并且给ci/cd指定runner的时候需要这个tag名字

3. runner的使用

如果.gitlab-ci.yml配置中没有指定runner tag,默认是没有runner接受job任务的,我们需要runner的配置,如图:

image.png