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 "[email protected]"
cat ~/.ssh/id_rsa.pub
# 复制到你的key到Github上
ssh -T [email protected]
# 你可以看到
# 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

MAC OS下使用Vagrant+Docker+Jenkins,实现持续化集成_第1张图片

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

你可能感兴趣的:(MAC OS下使用Vagrant+Docker+Jenkins,实现持续化集成)