jenkins配置應用自動部署到docker
阿新 • • 發佈:2018-12-26
概要
本文記錄jenkins上配置docker自動部署
所用外掛
- Hudson SCP publisher plugin:拷貝部署檔案到遠端虛擬機器
- Publish Over SSH:執行遠端部署命令
- Environment Injector Plugin:注入變數
配置外掛
- 配置scp外掛:
在jenkins的系統設定裡為scp配置遠端虛擬機器登入資訊:
- 配置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;