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作业##
- 新作业命名,选择类型Build a free-style software project(创建自由风格的软件项目)
- 作业描述,高级项目选项(advanced project options) ,使用自定义工作空间(use custom workspace),/tmp/jenkins-buildenv/${JOB_NAME}/workspace
- 源代码管理(Source code management),选择git并指定测试仓库(https://github.com/jamtur01/docker-jenkins-sample.git),包含了一些基于Ruby的RSpec测试
- 执行shell脚本(Execute shell)
通过启用SCM轮询,让Jenkins作业自动执行,新的改动签入git仓库后,触发自动构建