MAC OS下使用Vagrant+Docker+Jenkins,實現持續化集成

環境 :Vagrant + VirtualBox + Sublime Text 3

用以下命令建立軟連接,讓 sublime text 3 可以在命令行里面運行

ln -s /Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl /usr/local/bin/subl

啟動一個虛擬機

mkdir jenkins
cd jenkins
vargrant init chef/centos7
# 編輯 Vagrantfile (使用命令 subl . )
# 取消掉注釋 (config.vm.network "private_network", ip: "192.168.34.11")
# 添加本機hosts (subl /etc/hosts)
# 添加 jenkins.local 192.168.34.11
vargrant up
vagrant ssh

進行系統更新,安裝集成軟件

sudo yum -y update
sudo yum install -y zsh vim git
# 配置GitHub
ssh-keygen -t rsa -C "xxxxxxxx@qq.com"
cat ~/.ssh/id_rsa.pub
# 復制到你的key到Github上
ssh -T git@github.com
# 你可以看到
# Hi XXXX! You've successfully authenticated, but GitHub does not provide shell access.

安裝 ohmyzhs,和添加軟件源

sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
vi .zshrc
# 添加plugins=(git yum)
yi -y epel-release
yi -y https://centos7.iuscommunity.org/ius-release.rpm
yum repolist
yu

添加了軟件源之后,可以ys php查看關于php的軟件包,你可以看到php70u開頭的,這就是php7,這樣就可以不像上次我寫的文章那樣安裝瞎折騰了。

yum 插件的使用詳解

Alias   Command                             Description
ys      yum search                          Search package
yp      yum info                            Show package info
yl      yum list                            List packages
ygl     yum grouplist                       List package groups
yli     yum list installed                  Print all installed packages
ymc     yum makecache                       Rebuilds the yum package list
yu      sudo yum update                     pgrade packages
yi      sudo yum install                    Install package
ygi     sudo yum groupinstall               Install package group
yr      sudo yum remove                     Remove package
ygr     sudo yum groupremove                Remove pagage group
yrl     sudo yum remove --remove-leaves     Remove package and leaves
yc      sudo yum clean all                  Clean cache

安裝Jenkins和Docker

yi -y java-1.8.0-openjdk
sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo
sudo rpm --import http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key
yu
yi -y jenkins
yi -y docker

啟動與測試Docker、Jenkins

systemctl start docker
systemctl start jenkins
systemctl enable docker
systemctl enable jenkins 
sudo docker 
# 看是否顯示出命令,必須用sudo運行

給Jenkins添加運行sudo權限

sudo vi /etc/sudoers 
# 添加 jenkins ALL=NOPASSWD: ALL

在本機訪問 jenkins.local:8080

安裝Jenkins的Github插件

系統管理 → 管理插件 → 可選插件 → GitHub Plugins

安裝Docker加速器,拉去鏡像

進入DaoCloud官網,注冊登錄,進入控制臺,點擊加速器,按照步驟安裝。

dao pull centos

打開Jenkins網頁

新建 → (名稱:RubyRpc,構建一個自由風格的軟件項目) 
→ 源代碼管理 (Git地址:https://github.com/MiYogurt/docker-jenkins-sample.git)
→ 增加構建步驟(Execute shell)
# 輸入一下內容
IMAGE="jenkins-rpc"
CONTAINER="jenkins-rpc"
MNT="$WORKSPACE/.."
sudo docker build -t $IMAGE . 
sudo docker run --name $CONTAINER -d -v "$MNT:/opt/project" $IMAGE /bin/bash -c 'cd /opt/project/workspace && rake spec'
sudo docker attach $CONTAINER
RC=$(sudo docker wait $CONTAINER)
sudo docker rm $CONTAINER
exit $RC
→ 保存
→ 構建

這個東西我弄了3天,說一下其中踩到的坑

1.我開始想用Docker構建一個Jenkins+Docker的鏡像,但是DockerBook中提供的源碼,有問題,怎么都調試不好。
2.我直接拉取官方的Jenkins,運行之后發現,這個鏡像里面沒有安裝Docker,所以無法使用 。
3.我在MacOS上面安裝Jenkins,他會報一個docker命令找不到,使用sudo又需要密碼,我Google了很多,還是沒有解決,最終放棄,jenkins用戶好像也添加不進Docker組,MAC里面沒有usermod命令,Docker服務端又是運行在docker-machine上面的。
4.Github Plugins 需要你先配置好git與Github的公鑰,要不然拉取源碼不允許。
5.docker.sock的權限是600所以只能用sudo docker運行。shell里面所有相關命令都應該是sudo docker
6.在Vagrant中,原來的代碼倉庫里面是用的ubuntu:14.04鏡像,運行的時候,老是apt-get update失敗,我克隆了代碼倉庫,自己修改了源,阿里云,中科大,163,搜狐,教育網。各種都不行。最后沒辦法,使用的Centos鏡像構建,最終一次成功。終于是松了一口氣。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容