gitlab ci php 构建,Docker搭建Gitlab CI 全过程详解

配置环境:

宿主机:Ubuntu 13.04 (x86_64)

docker版本:0.7.0

Client version: 0.7.0

Go version (client): go1.2rc5

Git commit (client): 0d078b6

Server version: 0.7.0

Git commit (server): 0d078b6

Go version (server): go1.2rc5

Last stable version: 0.7.0

Gitlab     版本:4.2.0(已经搭建好的)

Gitlab CI版本:3.2.0

一、从index.docker.io搜寻所需镜像。

当然是去我们最可爱得index.docker.io上去搜寻啦。

sudo docker search gitlab-ci #从docker index搜寻gitlab-ci的镜像

fd9f4f4a35ccfa37d827ec6c8bdc84eb.png

这里有很多的可用image很多,这些都是用户上传的,可以自己选择,我一般都是看TRUSTED栏有ok的就可以,这是我自己猜的啊,你根据自己的经验来就行。我选的是anapsix/gitlab-ci,看这个比较顺眼,就它了。

二、去https://index.docker.io获取镜像相关的信息。

别着急让你下载的镜像跑起来,我们把别人的成果偷来之后总不能不会用把,接着去https://index.docker.io 去看看我们偷来的东西是谁的,怎么样让这个东东跑起来。

1106602294cd8ee174025f439bf01094.png

看看,人家都教你怎么用啦。人家还告诉你怎么做的这个镜像,就是我们的Dockerfile。不过我是要和自己内网的Gitlab上用,所以直接拷贝下来的东西不能用。

这是Dockerfile的内容:

FROM tianon/debian #基础镜像包

MAINTAINER Anastas Semenov #作者

RUN apt-get update #run跑的是命令

#底下这一部分和实体机上安装类似,但是还是有很大的不同,我就掉进这个坑里去过。

RUN DEBIAN_FRONTEND=noninteractive apt-get install -y --force-yes libxml2-dev libxslt-dev libcurl4-openssl-dev libreadline6-dev libc6-dev libssl-dev libyaml-dev libicu-dev zlib1g-dev libsqlite3-dev wget curl gcc build-essential make git sudo postfix cron ruby1.9.1 ruby1.9.1-dev rubygems-integration redis-server

RUN gem install bundle --no-ri --no-rdoc

RUN adduser --disabled-login --gecos 'GitLab CI' gitlab_ci

RUN cd /home/gitlab_ci; sudo -u gitlab_ci -H git clone -b 3-2-stable --depth 1 https://github.com/gitlabhq/gitlab-ci.git gitlab-ci

RUN cd /home/gitlab_ci/gitlab-ci; sudo -u gitlab_ci -H mkdir -p tmp/pids tmp/sockets

RUN cd /home/gitlab_ci/gitlab-ci; curl -sL https://raw.github.com/anapsix/gitlabci-docker/master/BUNDLER-adding-sqlite3-support.patch | sudo -u gitlab_ci -H git am

RUN cd /home/gitlab_ci/gitlab-ci; sudo -u gitlab_ci -H bundle install --without development test postgres mysql --deployment

RUN cd /home/gitlab_ci/gitlab-ci; sudo -u gitlab_ci -H curl -sL https://raw.github.com/anapsix/gitlabci-docker/master/gitlab_ctrl.rb > ./gitlabci_ctrl.rb; chmod +x ./gitlabci_ctrl.rb

RUN cd /home/gitlab_ci/gitlab-ci; sudo -u gitlab_ci -H ./gitlabci_ctrl.rb --db --puma --app GITLAB_URLS="https://dev.gitlab.org/"

RUN cd /home/gitlab_ci/gitlab-ci; sudo -u gitlab_ci -H bundle exec rake db:setup RAILS_ENV=production

RUN cd /home/gitlab_ci/gitlab-ci; sudo -u gitlab_ci -H bundle exec whenever -w RAILS_ENV=production

# cleanup, if needed

#RUN DEBIAN_FRONTEND=noninteractive apt-get remove --force-yes -y ruby1.9.1-dev

#RUN DEBIAN_FRONTEND=noninteractive apt-get autoremove --force-yes -y

EXPOSE 9000 #container开的端口

WORKDIR /home/gitlab_ci/gitlab-ci

CMD /home/gitlab_ci/gitlab-ci/gitlabci_ctrl.rb --start #启动命令

就相当与你偷了别人的东西(打个比如)不会用,去找人家,人家还告诉你这个东西怎么用,而且还告诉你这个东西是怎么做出来的。哈哈哈,真是个好yin。

三、修改镜像使镜像符合自己的需要。

这下来龙去脉都弄清楚之后,我们修改镜像就要跑自己的东西啦。

docker run -i -t anapsix/gitlab-ci /bin/bash

docker run  anapsid/gitlab-ci:是让docker用anapsid/gitlab-ci镜像跑进一个container里面

-i -t 是进入这个container,现在我们就在容器里面去了。

16118d4c2261811c747b979274677764.png

因为我事先看过如何去实体机上安装Gitlab CI,所以进去就直接修改文件,改成能与本地Gitlab服务器呼应。

https://github.com/gitlabhq/gitlab-ci/blob/master/doc/installation.md (gitlab-ci安装教程)

http://www.cnblogs.com/inbase/p/3276310.html (这个是按照教程做的实验以及遇到的问题)

进入容器之后修改:

5eed5b6c00b5e8f10644294f90d2abfe.png

其他的不用改。然后退出exit退出,并且用docker ps -l查看container号,这时上一行会有一个用docker commit提交你修改的部分。

exit

docker ps -l #这一行会产生一个container ID,下一行命令会用到。

docker commit 你的container-ID liql/gitlab-ci #把你在anapsid/gitlab-ci修改的部分固 #化成你自己的images

四、让自己的镜像跑起来。

然后就可以跑起来啦

1.方法一:

docker run -d -p 9000:9000 liql/gitlab-ci /home/gitlab_ci/gitlab-ci/gitlabci_ctrl.rb --start

2.方法二:

docker run -i -t -p 9000:9000 liql/gitlab-ci #这是进入container的命令

/home/gitlab_ci/gitlab-ci/gitlabci_ctrl.rb --start

这里千万不能exit,用ctrl+p 然后 ctrl+q 这个时候就看到容器在跑了。

ca76c24bfafb649aec0461b0ddbcc36f.png

然后访问你的http://192.168.0.211:9090 就会看到惊喜了。

e6267e25618194829aab2599aa01e380.png

大功告成。收获多多啊。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值