基于容器的gitlab cicd入门
安装gitlab
docker-compose配置文件如下,注意
- 端口号映射宿主机与容器要一致,gitlab会自动根据配置改变容器内部暴露的端口
- external_url指定暴露的链接,这是宿主机与容器端口要一致的原因,否则容器内部访问服务出错
web:
image: 'gitlab/gitlab-ce:latest'
restart: always
hostname: '172.xxx.xxx.xxx:8020'
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url 'http://172.xxx.xxx.xxx:8020'
ports:
- '8020:8020'
volumes:
- '/opt/gitlab/config:/etc/gitlab'
- '/opt/gitlab/logs:/var/log/gitlab'
- '/opt/gitlab/data:/var/opt/gitlab'
安装gitlab-runner
注册的token从gitlab的管理界面查看
docker run -d --name gitlab-runner --restart always \
-v /opt/gitlab/runner:/etc/gitlab-runner \
-v /var/run/docker.sock:/var/run/docker.sock \
gitlab/gitlab-runner:latest
docker run --rm -it -v /opt/gitlab/runner:/etc/gitlab-runner gitlab/gitlab-runner register
.gitlab-ci.yml机制
gitlab的流水线配置都在.gitlab-ci.yml文件中完成
基本机制:执行流水线时,把仓库代码克隆到runner中,然后在项目的根目录执行.gitlab-ci.yml中的脚本,所以相当于在Linux服务器中执行shell脚本,shell能做到的事,gitlab流水线也能做到
除了普通shell脚本,gitlab提供了一些特殊关键字,用于完成一些特殊的动作和控制,以使用gitlab的集成功能,如生成制品、执行条件