dockerContinuousIntegration - juedaiyuer/researchNote GitHub Wiki

#docker持续集成测试---Jenkins#

##持续集成工具##

##Dockerfile##

FROM ubuntu:14.04
MAINTAINER [email protected]
ENV REFRESHED_AT 2014-07-11

RUN apt-get update -qq && apt-get install -qqy curl apt-transport-https
RUN apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
RUN echo deb https://apt.dockerproject.org/repo ubuntu-trusty main > /etc/apt/sources.list.d/docker.list
RUN apt-get update -qq && apt-get install -qqy iptables ca-certificates openjdk-7-jdk git-core docker-engine

ENV JENKINS_HOME /opt/jenkins/data
ENV JENKINS_MIRROR http://mirrors.jenkins-ci.org

RUN mkdir -p $JENKINS_HOME/plugins
RUN curl -sf -o /opt/jenkins/jenkins.war -L $JENKINS_MIRROR/war-stable/latest/jenkins.war

RUN for plugin in chucknorris greenballs scm-api git-client git ws-cleanup ;\
    do curl -sf -o $JENKINS_HOME/plugins/${plugin}.hpi \
       -L $JENKINS_MIRROR/plugins/${plugin}/latest/${plugin}.hpi ; done

ADD ./dockerjenkins.sh /usr/local/bin/dockerjenkins.sh
RUN chmod +x /usr/local/bin/dockerjenkins.sh

VOLUME /var/lib/docker

EXPOSE 8080

ENTRYPOINT [ "/usr/local/bin/dockerjenkins.sh" ]

#构建镜像
$ sudo docker build -t juedaiyuer/dockerjenkins .

#运行镜像
#--privileged 允许我们以其宿主机具有的所有能力来运行容器

#Docker中运行Docker必要的魔法
$ sudo docker run -p 8080 --name jenkins --privileged -d juedaiyuer/dockerjenkins

#检查Docker Jenkins容器的日志
$ sudo docker logs jenkins

#浏览Jenkins服务器,通过端口(sudo docker port containner id)

##创建新的Jenkins作业##

  1. 新作业命名,选择类型Build a free-style software project(创建自由风格的软件项目)
  2. 作业描述,高级项目选项(advanced project options) ,使用自定义工作空间(use custom workspace),/tmp/jenkins-buildenv/${JOB_NAME}/workspace
  3. 源代码管理(Source code management),选择git并指定测试仓库(https://github.com/jamtur01/docker-jenkins-sample.git),包含了一些基于Ruby的RSpec测试
  4. 执行shell脚本(Execute shell)

通过启用SCM轮询,让Jenkins作业自动执行,新的改动签入git仓库后,触发自动构建