1. 程式人生 > >jenkins配置應用自動部署到docker

jenkins配置應用自動部署到docker

概要

本文記錄jenkins上配置docker自動部署

所用外掛

  1. Hudson SCP publisher plugin:拷貝部署檔案到遠端虛擬機器
  2. Publish Over SSH:執行遠端部署命令
  3. Environment Injector Plugin:注入變數

配置外掛

  1. 配置scp外掛:
    在jenkins的系統設定裡為scp配置遠端虛擬機器登入資訊:
    這裡寫圖片描述
  2. 配置Publish over ssh外掛:
    在在jenkins的系統設定裡為ssh配置遠端虛擬機器登入資訊:
    這裡寫圖片描述

專案配置

下面的配置都在專案的配置頁面
1. 配置所需環境變數
設定自動化指令碼中需要用到的變數
這裡寫圖片描述


2. 配置檔案傳輸
這裡寫圖片描述
3. 配置遠端命令執行
這裡寫圖片描述
自動化指令碼如下:

# 工作目錄
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;