Open alwaystest opened 8 years ago
标签(空格分隔): GitLab-CI GitLab-CE Docker
GitLab 使用Runner来跟CE通讯,通过调用API的方法跟CE交互。获取项目的最新更新,运行.gitlab-ci.yml里面的命令,来达到编译,单元测试,自动部署等目的,并将结果返回给GitLab-CE。
.gitlab-ci.yml
这里使用Docker来创建Runner的容器。
使用Docker创建Runner的容器 参考:官方文档
docker run -v
-v
/Users
/Users/xxx/gitlab
/etc/gitlab-runner/
config.toml
/var/run/docker.sock
docker-machine ssh default
GitLab持续集成
标签(空格分隔): GitLab-CI GitLab-CE Docker
GitLab 使用Runner来跟CE通讯,通过调用API的方法跟CE交互。获取项目的最新更新,运行
.gitlab-ci.yml
里面的命令,来达到编译,单元测试,自动部署等目的,并将结果返回给GitLab-CE。这里使用Docker来创建Runner的容器。
使用Docker创建Runner的容器 参考:官方文档
注意:
docker run -v
里面-v
的功能。是把Host的目录映射到容器里面去。而对于OS X,Host指的是Virtual Box 创建的VM。而每次重新启动VM的时候,保存在里面的数据会丢掉(我自己做实验确认过的)。如果原封不动的按照官网操作,Runner注册时生成的数据不会保存,重启机器以后注册过的Runner直接就失联了。/Users
目录共享到VM里面,在创建容器 的时候直接把-v
后面的目录写到/Users/xxx/gitlab
就好了。(可能需要先手动建立目录)。/etc/gitlab-runner/
下的config.toml
里面(执行用户不同,可能存储的位置不同,详情)。所以上面的问题其实就是配置文件持久化的问题。/var/run/docker.sock
来操作Docker。在OS X里面,还是由于有一层VM,这个文件不在OS X主机里面,而在VM里面,要操作到这个文件,需要执行docker-machine ssh default
连接到VM里面进行docker操作,而不能使用Docker Quickstart Terminal。参考