从零开始使用Jenkins来构建Docker容器(Ubuntu 14.04)

当开发更新了代码,提交到Gitlab上,然后由测试人员触发Jenkins,于是一个应用的新版本就被构建了。听起来貌似很简单,duang~duang~duang,我用了是这样,你们用了也是这样,看起来这个过程很自动化,其实这里面加了很多特技,根本就没有这样的头发,不对,根本就没有这样简单的方式,其环境搭建的过程十分繁琐,jenkins的上下文关系配置更是相当困难。今天我来介绍一种简单的新方法-使用Jenkins来构建一个apache容器。

以下操作的目标:jenkins放置在宿主机内(Ubuntu14.04),apache容器放置在容器里,以后apache镜像一做修改,触发构建一个jenkins的job,宿主机会停掉原来的容器,生成一个新的容器。

下面进入正式环节。

1.安装Jenkins

#wget -q -O - http://pkg.jenkins-ci.org/debian/jenkins-ci.org.key | #sudo apt-key add -
#sudo sh -c ‘echo deb http://pkg.jenkins-ci.org/debian binary/ > /etc/apt/sources.list.d/jenkins.list‘
#sudo apt-get update
#sudo apt-get install jenkins  

2.登陆http://IP:8080,进入jenkins,在http://IP:8080/pluginManager/available安装一些必要的插件SCM Sync Configuration Plugin ,GitHub plugin ,GIT plugin ,GIT client plugin ,安装结束后重启jenkins.

3.重新登陆http://IP:8080,进入jenkins,新建一个名为apache的Item.

  • 配置如下面截图

  shell脚本如下,该脚本会从github上(如果有本地gitlab操作同理)

#!/bin/sh
id
set +e
echo ‘>>> Get old container id‘

CID=$(docker ps | grep "apache" | awk ‘{print $1}‘)

echo $CID

/usr/local/bin/docker build -t apache /var/lib/jenkins/jobs/apache/workspace | tee /var/lib/jenkins/jobs/apache/workspace/Docker_build_result.log
RESULT=$(cat /var/lib/jenkins/jobs/apache/workspace/Docker_build_result.log | tail -n 1)

#if [["$RESULT" != *Successfully*]];then
#  exit -1
#fi

echo ‘>>> Stopping old container‘

if [ "$CID" != "" ];then
  /usr/local/bin/docker stop $CID
fi

echo ‘>>> Restarting docker‘
service docker.io restart
sleep 5
  
echo ‘>>> Starting new container‘
/usr/local/bin/docker run -p 3000:80 -d apache

4.配置结束后,保存

5.配置jenkins用户

  此时还不能立即构建,因为jenkins触发脚本并不是root用户,因此需要将jenkins免用户,并将用户加入到docker组,否则获取不到容器ID.

[email protected]:~# vim /etc/sudoers

# User privilege specification
root    ALL=(ALL:ALL) ALL
jenkins ALL=(ALL:ALL) ALL

[email protected]:~$ usermod -G docker jenkins

6.开始构建,在jenkins的build记录中可以看到输出,由于jenkins会自动把github上的文件给下载下来放在workspace目录中,因此,触发脚本后,直接开始构建apache镜像。

7.现在查看一下镜像和容器,登陆apache网站验证

容器生成的apache页面打开如下

时间: 2025-01-14 20:09:03

从零开始使用Jenkins来构建Docker容器(Ubuntu 14.04)的相关文章

使用jenkins自动构建docker容器范例

1.登录Jenkins,新建一个自由风格的软件项目. 2.源码管理选择git,并添加Repository URL.Credentials 3.构建选择 Execute Shell,命令如下: docker stop front_dev || true; docker rm front_dev || true; docker build -t front_dev .; docker run --name front_dev -p 10080:80 -d front_dev; 这里有几个注意点: d

分布式进阶(二)Ubuntu 14.04下安装Dockr图文教程(一)

当前,完全硬件虚拟化技术(KVM.Xen.Hyper-V 等)能在一个物理主机上很好地运行多个互相独立的操作系统,但这也带来一些问题:性能不佳,资源浪费,系统反应迟缓等.有时候对用户来说,完全的硬件虚拟化并不是最好的选择. 一种替代方案是使用轻量级虚拟化技术 -- 所谓的 LinuX Container 容器 (LXC),它提供的是系统级虚拟化.与跑虚拟机相比,LXC 可以在一个轻量级沙箱容器里面跑多个 Linux 操作系统.当你需要设置一些易于克隆的开发环境.测试环境,或想在安全沙盒里安装应用

基于Ubuntu 14.04构建tomcat7镜像

1.创建Dockerfile文件 # Pull base image FROM ubuntu:14.04 MAINTAINER shencq "[email protected]" # update source RUN echo "deb http://archive.ubuntu.com/ubuntu trusty main universe"> /etc/apt/sources.list RUN apt-get update # Install curl

在Ubuntu 14.04安装和使用Docker

在Ubuntu 14.04安装和使用Docker 作者:chszs,版权全部,未经允许.不得转载.博主主页:http://blog.csdn.net/chszs Docker是一个开源软件,它能够把一个Linux应用和它所依赖的一切(比方配置文件)都封装到一个容器.然而.Docker与虚拟机不同,它使用了沙箱机制.Docker容器不执行操作系统,它共享主机上的操作系统. 下面我将在Ubuntu 14.04安装和使用Docker. Docker使得在同一个server上能够执行很多其他的应用程序-

Ubuntu 14.04(64位)安装和使用docker

                                        Docker介绍: Docker是一个开源的应用容器引擎,可以通过docker来安装一个独立的系统(类似于虚拟机(Vmware)之类的),不过其特点是非常轻量级,所安装应用的启动速度非常快(通常一秒内完成启动):很多时候,我们可以在一台电脑上装上一个docker,然后用docker启动很多服务器,以便在一台电脑上模拟多台服务器的效果. Docker是基于unix的,在linux系统中可以原生地运行:而在windows

Ubuntu 14.04 LTS 安装Docker

Docker官方是有很详细的安装文档(https://docs.docker.com/engine/installation/ubuntulinux/),这里做了一个Ubuntu 14.04 LTS中文版的. 系统要求 64位 $ file /sbin/init /sbin/init: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Lin

ubuntu 14.04 体验LXC非特权容器

LXC 1.0 最大的特性是非特权容器,通过巧妙的uidmap,将物理机的普通用户(uid和gid)映射成容器里的root(uid=0,gid=0),极大的提高了lxc的安全性. LXC 1.0 对内核和python版本有要求,故下文以 ubuntu 14.04 为例,使用普通用户dell创建非特权的lxc容器. (以下操作,非特别说明,均为root权限操作,命令提示符为#号) 1.安装lxc apt-get install lxc uidmap 2.创建普通用户 useradd -m dell

Windows 7中的VirtualBox中的Ubuntu 14.04中基于Docker安装Hadoop

1. 在VirtualBox中安装Ubuntu 14.04 2. 在Ubuntu 14.04中安装Docker 3. 安装基于Docker的Hadoop 下载image docker pull sequenceiq/hadoop-docker:2.6.0   运行container docker run -i -t sequenceiq/hadoop-docker:2.6.0 /etc/bootstrap.sh –bash   测试Hadoop(将ubuntu的内存调到2G,即2048MB,否则

阿里云 ubuntu 14.04 模板上安装 docker

ubuntu 14.04 的内核是 3.13 ,所以内核不用升级. 安装步骤如下: # apt-get update # apt-get install apt-transport-https # apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9 # bash -c "echo deb https://get.docker.io/ub