概念
GitLab具有内置的持续集成(CI),持续部署和持续交付支持,可用于自动化构建,测试和部署您的应用程序
docker镜像下载
到docker hub下载gitlab-ce镜像和gitlab-runner镜像
1 | docker pull gitlab/gitlab-runner:latest |
安装gitlab-ce
- 用命令运行docker容器
1 | docker run --detach \ |
- 访问地址:localhost:81 或 mygitlab.com:81
- 第一次访问需要设置root账号密码
若忘记密码,可以进入容器中重置密码
1 | docker exec -it gitlab镜像id bash |
安装gitlab-runner
- 用命令运行docker容器
1 | docker run \ |
使用docker来运行gitlab和gitlab-runner,需要用到link
参数链接两个容器,绑定数据卷时,docker.sock即为本机的docker.sock
配置gitlab-runner
如果需要gitlab-runner工作的话,需要让gitlab-runner知道gitlab的地址等相关信息,进入runner容器中注册runner
1 | docker exec -it gitlab-runner镜像id bash |
- url:注意gitlab的url地址,需要配置域名地址,否则无法链接容器
- 查看gitlab的token地址:http://localhost:81/admin/runners
- executor的具体区别:https://docs.gitlab.com/runner/executors/README.html
- docker基础镜像:可以通过gitlab-ci.yml覆盖
注册成功后,就可以在http://localhost:81/admin中看到runner,并将runner应用到某个项目上
在项目中应用gitlab-ci
- 在项目中创建
.gitlab-ci.yml
文件,具体参考官方gitla-ci.yml编写指南
1 | test: |
commit之后就会自动开始跑ci
常见错误
注册gitlab-runner时,出现无法链接异常
1 | ERROR: Registering runner... failed |
解决:将http://localhost:81/
改为http://gitlab.abc.net/ci
即可注册成功
跑ci时出现报错
1 | fatal: unable to update url base from redirection: |
解决:出现这个问题的原因好像是gitlab-runner在拉取代码的时候,没有解析到
mygitlab.com,查看gitlab-runner的host文件,里面有mygitlab的映射。暂时通过将gitlab中的extenar_url修改为gitlab容器在docker中的ip地址
1 | docker exec -it gitlab vi /etc/gitlab/gitlab.rb |
查看容器的ip:docker inspect 容器id