歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Docker的搭建Gitlab CI 全過程詳解

Docker的搭建Gitlab CI 全過程詳解

日期:2017/2/28 14:38:08   编辑:Linux教程

目錄

配置環境:
宿主機:Ubuntu 13.04 (x86_64)
docker版本:0.7.0
Gitlab 版本:4.2.0(已經搭建好的)
Gitlab CI版本:3.2.0
一、從index.docker.io搜尋所需鏡像。
二、去https://index.docker.io獲取鏡像相關的信息。
三、修改鏡像使鏡像符合自己的需要。
四、讓自己的鏡像跑起來。

配置環境:

宿主機: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的鏡像

這裡有很多的可用image很多,這些都是用戶上傳的,可以自己選擇,我一般都是看TRUSTED欄有ok的就可以,這是我自己猜的啊,你根據自己的經驗來就行。我選的是anapsix/gitlab-ci,看這個比較順眼,就它了。

二、去https://index.docker.io獲取鏡像相關的信息。

別著急讓你下載的鏡像跑起來,我們把別人的成果偷來之後總不能不會用把,接著去https://index.docker.io 去看看我們偷來的東西是誰的,怎麼樣讓這個東東跑起來。

看看,人家都教你怎麼用啦。人家還告訴你怎麼做的這個鏡像,就是我們的Dockerfile。不過我是要和自己內網的Gitlab上用,所以直接拷貝下來的東西不能用。

這是Dockerfile的內容:

FROM tianon/debian #基礎鏡像包

MAINTAINER Anastas Semenov <[email protected]> #作者
<P>
RUN apt-get update #run跑的是命令
</P>
#底下這一部分和實體機上安裝類似,但是還是有很大的不同,我就掉進這個坑裡去過。
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。

GitLab 的詳細介紹:請點這裡
GitLab 的下載地址:請點這裡

Copyright © Linux教程網 All Rights Reserved