利用docker构建持续集成

下载docker的jenkins包

由于docker的官方收录了jenkins,所以我们可以方便的下载。注意官方的包使用的是debain,即非ubuntu也非centos,在配置相关环境的时候要相应的配置。

 #docker pull jenkins:latest

编写Dockerfile

因为我们要支持android的编译,所以需要操作系统支持32位环境。

 FROM jenkins:latest
 USER root
 RUN dpkg --add-architecture i386
 RUN apt-get update
 RUN apt-get install -y lib32z1 lib32ncurses5 lib32stdc++6
 USER jenkins

编译完成后,我们要生成image。

 #docker build -t lencee/jenkins:latest .

启动jenkins

编译之后可以找到这个image。然后进行启动。

 #docker run -d --name jenkins -u root -p 9002:8080 -v $PWD/data:/var/jenkins_home -e "TZ=Asia/Shanghai" -i lencee/jenkins:latest

这里"-u root"表示通过root用户来运行程序,避免一些permission的问题。

Jenkins插件之maven

jenkins的插件maven可以选择自动安装,安装的位置会在 /var/jenkins_home/tools下,找到maven之后,修改conf/settings.xml文件,把repo的位置设置在/var/jenkins_home/tools/repo下,建立一个repo文件夹,这样一来,docker映射的host机器的路径就有这些仓库文件了。好处就是你可以随时关闭docker container,甚至删除(谨慎操作)都可以,当你重启一个jenkins的时候,编译也不会重新去下库,同时你也可以手工维护。

Jenkins插件之android-sdk

这个插件会安装在/var/jenkins_home/tools/android-sdk下,你完全可以手工维护,因为国服的关系,链接https会有麻烦。这里列出手工维护所需条件和方法。首先,手工维护需要host机器安装jdk环境,这个jdk可以和docker内的java环境不一样,只是为了运行android-sdk的tools。完成之后即可运行以下命令:

  • 查询安装内容命令

#./android list sdk -s -a --no-ui --proxy-host 203.208.46.200
  • 安装某个sdk内容的命令

#./android update sdk -s -a --no-ui --proxy-host 203.208.46.200 -t [0,1,2...]

手动维护完成之后。就可以在jenkins中编译android项目了。

  • 注意

不需要安装任何android插件,只需要安装相应的gradle或者ant即可。

Jenkins工具之高级用法

可以看出来Jenkins的工具都安装在/var/jenkins_home/tools中,所以你完全可以自己下载工具,放在tools目录中,然后进行相应的手工配置(主要是方便扩展),之后在Jenkins的全局配置页面设置地址为 /var/jenkins_home/tools/<your_tools>即可。


相关链接

  • Github

  • docker hub

你可能感兴趣的:(利用docker构建持续集成)