jenkins将项目部署远程服务器并用docker启动服务
jenkins和docker不叙述,直接上配置
第一步:先将远程服务器配置进jenkins
到这里就配置完成了,多个服务就配置多个
第二步:配置项目
因为我选择的是脚本执行,就把脚本放远程服务i了,我附录一下脚本内容
这是线上文件夹下的内容
附录执行脚本:
#操作/项目路径(Dockerfile存放的路劲)
BASE_PATH=/xxcy-service/xxcy-base
#版本存放地址
BASE_PATH_LOG=/xxcy-service/xxcy-base-log
#固定名字区分
PRO=-pro
#docker 镜像/容器名字或者jar名字 这里都命名为这个
SERVER_NAME_BUSINE=xxcy-busine
#容器id
CID_BUSINE=$(docker ps | grep "$SERVER_NAME_BUSINE$PRO" | awk '{print $1}')
#镜像id
IID_BUSINE=$(docker images | grep "$SERVER_NAME_BUSINE$PRO" | awk '{print $3}')
#时间
DATE=`date +%Y%m%d%H%M`
# 构建docker镜像
function build(){
if [ -n "$IID_BUSINE" ]; then
echo "存在$SERVER_NAME_BUSINE镜像,IID_BUSINE=$IID_BUSINE"
else
echo "不存在$SERVER_NAME_BUSINE镜像,开始构建镜像"
cd $BASE_PATH/$SERVER_NAME_BUSINE
docker build -t $SERVER_NAME_BUSINE$PRO .
fi
}
# 运行docker容器
function run(){
build
if [ -n "$CID_BUSINE" ]; then
echo "存在$SERVER_NAME_BUSINE容器,CID_BUSINE=$CID_BUSINE,重启docker容器 ..."
docker restart $SERVER_NAME_BUSINE$PRO
echo "$SERVER_NAME容器重启完成"
else
echo "不存在$SERVER_NAME_BUSINE容器,docker run创建容器..."
docker run --name $SERVER_NAME_BUSINE$PRO -m 1g -v $BASE_PATH/$SERVER_NAME_BUSINE:$BASE_PATH/$SERVER_NAME_BUSINE -v /data/logs:/data/logs -d -p 8730:8730 $SERVER_NAME_BUSINE$PRO
echo "$SERVER_NAME_BUSINE容器创建完成"
fi
}
#入口
run
附录二:dockerfile脚本
#基于openjdk:8
FROM openjdk:8
# 指定当前操作目录
WORKDIR /xxcy-service/xxcy-base/xxcy-busine
RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone
#容器启动后执行的操作
CMD ["java", "-Xmx2048m", "-jar", "xxcy-busine.jar"]