jenkins配置应用自动部署到docker

概要

本文记录jenkins上配置docker自动部署

所用插件

  1. Hudson SCP publisher plugin:拷贝部署文件到远程虚拟机
  2. Publish Over SSH:执行远程部署命令
  3. Environment Injector Plugin:注入变量

配置插件

  1. 配置scp插件:
    在jenkins的系统设置里为scp配置远程虚拟机登录信息:
    jenkins配置应用自动部署到docker_第1张图片
  2. 配置Publish over ssh插件:
    在在jenkins的系统设置里为ssh配置远程虚拟机登录信息:
    jenkins配置应用自动部署到docker_第2张图片

项目配置

下面的配置都在项目的配置页面
1. 配置所需环境变量
设置自动化脚本中需要用到的变量
jenkins配置应用自动部署到docker_第3张图片
2. 配置文件传输
jenkins配置应用自动部署到docker_第4张图片
3. 配置远程命令执行
jenkins配置应用自动部署到docker_第5张图片
自动化脚本如下:

# 工作目录
WORK_DIR="/root/karaf-deploy/${SERVICE_NAME}";

# 容器在运行
if [[ `docker ps | grep ${SERVICE_NAME}` ]]; 
then 
    # 停止运行中的容器
    docker stop ${SERVICE_NAME}
fi;

# 解压缩文件
unzip -o ${WORK_DIR}/userStatusMgrBuilder-1.0-RELEASE.zip -d ${WORK_DIR};

# 替换主机IP
sed -i -e '/^host=.*$/{s/=.*$/=${HOST}/}' ${WORK_DIR}/etc/userStatusMgr.cfg;

# 启动
if [[ `docker ps -a | grep ${SERVICE_NAME}` ]]; 
then
    # 容器已创建,只重启
    docker restart ${SERVICE_NAME}
else
    # 如果容器未创建,创建容器
    docker run --name=${SERVICE_NAME} --net=host -d -i -t -v ${WORK_DIR}/deploy:/usr/karaf/deploy -v ${WORK_DIR}/etc:/usr/karaf/external_etc -v ${WORK_DIR}/log:/usr/karaf/data/log -p 8181:8181 -p 9090:9090 karaf-osgi
fi;

你可能感兴趣的:(docker,jenkins)