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镜像构建,最终一次成功。终于是松了一口气。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 195,898评论 5 462
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,401评论 2 373
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 143,058评论 0 325
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,539评论 1 267
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,382评论 5 358
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,319评论 1 273
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,706评论 3 386
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,370评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,664评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,715评论 2 312
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,476评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,326评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,730评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,003评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,275评论 1 251
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,683评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,877评论 2 335

推荐阅读更多精彩内容