目錄
配置環境:
宿主機: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獲取鏡像相關的信息。
三、修改鏡像使鏡像符合自己的需要。
四、讓自己的鏡像跑起來。
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
當然是去我們最可愛得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 的下載地址:請點這裡