美文网首页vagrant
MAC OS下使用Vagrant+Docker+Jenkins,

MAC OS下使用Vagrant+Docker+Jenkins,

作者: Nodelover | 来源:发表于2016-03-08 14:19 被阅读889次

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

    相关文章

      网友评论

      • c9f2b0324b0d:最近也在做这个,我想问jenkins容器中安装docker的问题你是怎么解决的。我现在是听人说可以通过ssh连接docker服务端,在服务端运行命令
        三角君:@早起是病得治 提示:用/usr/local/bin/docker images全路径,docker images这种是不行的。
        三角君:今天刚好碰到这个问题,https://www.cnblogs.com/ihojin/p/jenkins-permission.html按这个操作把Jenkins的配置修改一下就能执行docker了。
        c9f2b0324b0d: @早起是病得治 我看你是docker和jenkins平行安装的

      本文标题:MAC OS下使用Vagrant+Docker+Jenkins,

      本文链接:https://www.haomeiwen.com/subject/ybjzkttx.html