从零搭建gitlabci环境
学习途径
搭建环境
将gitlab镜像拉到服务器上跑起来。
1】拉取镜像
- 使用docker拉取
gitlab/gitlab-ce 的镜像 - docker拉取
nginx 镜像
docker images
docker pull gitlab/gitlab-ce
docker pull nginx
docker images
2】运行镜像到容器
sudo docker run --detach --hostname gitlab.rayhomie.icu --publish 443:443 --publish 80:80 --publish 222:22 --name gitlab --restart always --volume /srv/gitlab/config:/etc/gitlab --volume /srv/gitlab/logs:/var/log/gitlab --volume /srv/gitlab/data:/var/opt/gitlab gitlab/gitlab-ce:latest
3】查看当前运行的容器
docker container ls -a
4】查看容器名为gitlab的日志
docker logs gitlab
docker logs -f gitlab
5】成功运行gitlab
此时我们就成功地将gitlab镜像跑在了本地的docker容器中,并且可以通过地址来访问gitlab界面。
GitLab CI/CD基础知识
简单理解:但我们把本地代码推到gitlab远程仓库时,会触发一个流程,这个流程会执行一系列的任务,这些任务组装起来就是一个pipeline(流水线)。
- pipeline(流水线)
- stage(阶段)
- job(任务)
如上图可以看出这几个概念之间的关系是:
gitlab只是一个代码仓库(代码管理工具平台),它是不会去跑这些流水线上的任务。所以又要引出一个概念gitlab runner(一个安装在服务器上的软件),所有的我们定义的cicd的操作都是在gitlab runner上去跑。(gitlab runner就是给cicd提供一个环境)
- .gitlab-ci.yml文件:用来定义流水线、阶段、任务。
docker安装GitLab Runner
1】拉取runner镜像
在docker远程仓库拉取gitlab/gitlab-runner镜像到本地:
docker pull gitlab/gitlab-runner
2】运行镜像到容器
sudo 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
3】注册gitlab runner
要使gitlab runner和gitlab产生联系,需要找到我们gitlab的Token:
然后在gitlab runner运行的docker容器中用这个Token去注册一下,脚本具体如下:
docker run --rm -v /srv/gitlab-runner/config:/etc/gitlab-runner gitlab/gitlab-runner register --non-interactive --executor "docker" --docker-image alpine:latest --url "http://gitlab.xxxx.com/" --registration-token "vtizNrFzQKFacsSMxsJX" --description "first-register-runner" --tag-list "test-cicd,dockercicd" --run-untagged="true" --locked="false" --access-level="not_protected"
- url参数是我们gitlab的地址
- registration-token参数是上图gitlab的token
- tag-list参数是注册这个runner的标签(后面可用于指定具体哪个runner去执行流水线任务)
|