Docker和Jenkins自动化部署 JAVA,自己踩坑爬出来的--第二篇

5 篇文章 0 订阅
2 篇文章 0 订阅

Docker && Jenkins自动化部署 JAVA,自己踩坑爬出来的

客官来了,楼上请,雅间一间,楼上的姑娘接客了

点击跳转第一篇

进入正题 接着使用docker 加 jenkins 实现自动部署
jenkins 如何搭建 百度一下哈,

好像用docker搭建的jenkins,在使用jenkins 时无法使用docker 命令,建议不要用docker 搭建jenkins

开始干 上干货。。。

首先我先描述一下 部署的流程

1、使用Jenkins 去拉取源码

2、拉取完之后进行打包,

  • 2.1、打出来的jar包放到 Dockerfile 目录下。
  • 2.2、基于Dockerfile 构建成新的镜像 。

3、将刚构建的镜像打个TAG,然后push到私有仓库下

4、执行启动脚本

  • 4.1、登录 10.8.9.3 删除旧的容器和镜像 (记得备份哦)
  • 4.2、登录 10.8.9.3 拉取刚才push上去的镜像,然后启动成容器
第一步 拉取源码、

打开jenkins 进入配置
在这里插入图片描述

第二步

该步骤包含了 2.1、2.2、3、4、4.1、4.2

在这里插入图片描述
jenkins上就配置这两个地方即可

#!/bin/bash
source /root/.bashrc		
cd /data/app/jenkins/workspace/${JOB_NAME}		#JOB_NAME 是jenkin自带的变量,就是此jenkins工作任务的名字
mvn clean package -Dmaven.test.skip=true	#打包
cd target #进入打完包的目录
cp demo-0.0.1-SNAPSHOT.jar /data/docker/dockerfile/test/ #将打完包的 jar 放到 另外一个目录下
cd /data/docker/dockerfile/test/  #进入这个目录
#删除旧的镜像
docker rmi 10.8.9.3/demo:1.1 
#基于dockerfile构建新的镜像
docker build -t 10.8.9.3/demo:1.1  .  #使用dockerfile 启动新的镜像  不用不忽略后面的 点哦 .
docker images			#查看镜像
#将新的镜像上传docker私有仓库
docker push 10.8.9.3/demo:1.1 
#启动部署各个节点脚本
./demo-start.sh

好,Jenkins 上配置 写完了 接下来我们 就到服务器上写 dockerfile 和 demo-start 的启动脚本了

接下来看Dockerfile 配置
cat Dockerfile 
FROM ascdc/jdk8  #基于 jdk8 打包镜像
ADD demo-0.0.1-SNAPSHOT.jar ./demo-0.0.1-SNAPSHOT.jar
EXPOSE 6061
ENTRYPOINT ["java","-jar","-Duser.timezone=GMT+08","./demo-0.0.1-SNAPSHOT.jar"]

Dockerfile 的配置写法 查度娘吧

接着看demo-start.sh
cd /data/docker/dockerfile/test/
ll
demo-start.sh
Dockerfile
cat demo-start.sh

#!/bin/bash
TARGET_HOST="10.8.9.3" #要部署的服务器地址
#如果第一次部署 不用停止和删除的步骤  ## 我是利用 absible 执行的远程命令
echo "stop old demo && del old demo && del old demo-image"  
ansible ${TARGET_HOST} -m shell -a "docker stop demo-service;docker rm demo-service;docker rmi demo:1.1"

echo "pull new-image && new TAG && del image && start new tag image"
ansible ${TARGET_HOST} -m shell -a "docker pull 10.8.9.2/demo:1.1;docker tag 10.8.9.2/demo:1.1 demo:1.1;docker rmi 10.8.9.2/demo:1.1;docker run --name demo-service -v /data/app/demo:/data/app/demo/ -p 6061:6061 -d demo:1.1"

第一条 echo 下的命令介绍

使用 ansible 远程执行 10.8.9.3 该服务器,
先停止 已有的容器;
在进行删除该容器;
在删除镜像

第二条echo下的命令介绍

使用 ansible 远程执行 10.8.9.3 该服务器
先下载私有仓库的的镜像;
打个新TAG #就是重新命名为 demo:1.1
删除 旧的 镜像
启动新命名的镜像 demo:1.1
–name 给该镜像启动的后容器取名字
-v 本地宿主机的映射路径:jar 容器内部的路径
-p 端口映射
-d 后端运行

注意:
Dockerfile、demo-start、demo-0.0.1-SNAPSHOT.jar
这三个文件 必须在同一路径

然后在Jenkins 执行刚才建的JOB 就可以了

以上分享是个人摸索,希望各位看官多多指教

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值