Jenkins+maven+gitlab自动化部署之docker发布sprint boot项目(七)
Jenkins发布docker应用与发布java应用配置基本一致,需要配置Dockerfile及构建的步骤,步骤如下:
1、jenkins主机构建应用为jar包
2、jenkins主机把生产的jar包构建为docekr镜像
3、jenkins主机把构建好的镜像推送至镜像仓库
4、目标主机去镜像仓库拉取镜像
5、目标主机以拉取的最新镜像启动新的服务
注意:需要在jenkins以及目标主机部署docker服务,关于docker的部署网上问的一堆,请自行百度。
1、新建项目
跟据之前创建任务一样,创建maven项目

2、项目配置
a)源码管理:指定代码仓库位置,以及分支
b)build

c)Post Steps
指定构建docker镜像的命令

说明:这里是说把打包好的jar包复制到我们创建好的构建eureka镜像的目录
build.sh 是一个脚本,用来构建镜像,并把镜像推送至指定镜像仓库,脚本内容如下:
[tchua@centos01 one-eureka]$ vim build.sh
#!/bin/bash docker_hub="registry-vpc.cn-hangzhou.aliyuncs.com/xxx/uat-images" ## 镜像仓库地址 TAG="eureka" #rm
docker rmi ${docker_hub}:$TAG ## 删除上一次构建镜像 #login
docker login -u ${USER} -p ${PASSWD} ${docker_hub} ## 登陆镜像仓库,${USER} ${PASSWD}修改为自己具体的用户名密码 #build
docker build -t ${docker_hub}:$TAG . ## 构建新镜像,. 是指DOckerfile在当前目录下 #push
docker push ${docker_hub}:$TAG ## 推送镜像至镜像仓库
镜像构建需要一个Dockerfile,Dockerfile文件内容:
FROM registry-vpc.cn-hangzhou.aliyuncs.com/vanje_one/software:java1. MAINTAINER vanje@vanje.com.cn ADD eureka-1.0..jar /apps/ EXPOSE ENTRYPOINT ["java","-jar","/apps/eureka-1.0.0.jar"]
d)构建后操作

说明:这里是远程登陆服务器执行服务启动脚本。
脚本内容如下:
#!/bin/bash docker_hub="registry-vpc.cn-hangzhou.aliyuncs.com/vanje_one/uat-images" ## 镜像仓库地址 TAG="eureka"
#rm
docker rm -f eureka ## 删除现有容器
docker rmi ${docker_hub}:${TAG} ## 删除现有容器镜像 #login
docker login -u ${USER} -p ${PASSWD} ${docker_hub} ## 登陆镜像仓库,${USER} ${PASSWD}修改为自己具体的用户名密码 docker pull ${docker_hub}:${TAG} ## 拉去镜像 docker run --name eureka -p : -d ${docker_hub}:${TAG} ## 启动指定镜像服务
3、发布
以上保存点击发布后,查看控制台日志可以看到对应的构建信息:

Jenkins+maven+gitlab自动化部署之docker发布sprint boot项目(七)的更多相关文章
- Jenkins+maven+gitlab自动化部署之基础环境部署(一)
从一个二线城市,来到上海,刚入职,老大就给任务,为了减少开发打包部署时间,需要搭建一套自动化部署环境.接到任务后,赶紧上网查找资料,以及了解jenkins作用等等,用了一周时间,了解了个大概,由于都是 ...
- Jenkins+maven+gitlab自动化部署之gitLab搭建(二)
Gitlab我们这里采用docker方式部署,详细请参考:Docker部署Gitlab11.10.4
- Jenkins+maven+gitlab自动化部署之前端构建发布(六)
前端项目构建,需要在jenkins主机部署node服务,网上有说介绍说安装对应的nodejs插件进行前端项目构建,我这里是直接调用系统npm命令,进行前端打包.具体node部署参考:Centos7部署 ...
- Jenkins+maven+gitlab自动化部署之构建Java应用(五)
前面几篇文章介绍jenkins部署以及配置,接下来我们,就介绍下如何使用jenkins发布应用. 1)新建项目 jenkins首页,点击左上新建任务,出现下图,填写对应信息,然后点击确定: 2)项目参 ...
- Jenkins+maven+gitlab自动化部署之Jenkins系统管理配置(四)
一.Jenkins全局工具配置 在jenkins首页依次进入系统管理>>全局工具配置: 1) jdk.git.maven配置 指定其在服务器中的目录位置 二.插件管理 1)依次点开系统管理 ...
- Jenkins+maven+gitlab自动化部署之Jenkins部署(三)
本章开始正式搭建Jenkins: 公司现在使用的jenkins版本是2.150.3,但是本次实验安装的版本我们选择最新的 2.164.3(当然,当你阅读这篇文章时,此版本已经不是最新),jenkins ...
- Jenkins Ansible GitLab 自动化部署
Jenkins Ansible GitLab 自动化部署 DevOps https://www.cnblogs.com/yangjianbo/articles/10393765.html https: ...
- jenkins+maven+svn 自动化部署
背景: 公司的web平台使用JAVA写的,但是不是用Tomcat部署的,代码内部自带了Web服务器,所以只需要有JAVA环境,将代码打包上传,启动脚本就可以. 项目是根据pom.xml打包成的是.zi ...
- ubuntu21.10搭建jenkins和gitlab自动化部署环境
镜像下载.域名解析.时间同步请点击阿里云开源镜像站 前置环境: vmware pro 16 + ubuntu21.10 安装gitlab 搭建ssh远程 打开终端 sudo apt-get insta ...
随机推荐
- DevOps-如何构建持续交付流水线
引言 DevOps 是一套实践方法,在保证高质量的前提下缩短系统变更从提交到部署至生产环境的时间,其中持续集成和持续交付是 DevOps 里面非常重要的一环.本文讲述了达到自动化持续交付需要做的准备工 ...
- python 小技巧,给设计好的dict 增加嵌套值
beijing={} beijing={'} 现在要给beijing的增加一个shanghai1 的嵌套值 beijing['shanghai1']['name']=1 运行: 那么在python3. ...
- Spring|@Autowired与new的区别
前两天写代码的时候遇到一个问题,通过new出来的对象,自动注入的属性总是报空指针的错误.到网上查了资料,才发现问题所在,同时也加深了自己对于容器IOC的理解.现在把这个问题记录一下,仅供大家参考. [ ...
- go中的方法以及自定义类型代码示例
package main import "fmt" type user struct { name string age int sex string } type admin s ...
- [Android] 安卓手机不用root删除自带app
声明:本文档仅供测试,因删除引起的一切问题,本人概不负责 声明:本文档仅供测试,因删除引起的一切问题,本人概不负责 声明:本文档仅供测试,因删除引起的一切问题,本人概不负责 转载请注明出处:https ...
- 通过遍历而非排序求最值 python list in 时间复杂度 列表元素存在性
Write a function: def solution(A) that, given an array A of N integers, returns the smallest positiv ...
- JS实现下载的常用方案
如何使用JS实现异步下载吗?即:既能实现下载又不刷新页面.这时我们常常会想到使用ajax,但是由于ajax接受的response始终是字符串,因此并不能使用ajax来实现下载功能. 常见是新建下载的方 ...
- vue-router 使用query传参跳转了两次(首次带参数,跳转到了不带参数)
问题: 在做项目的过程中,使用query传参数,发现跳转过程中第一次有参数,但是路由马上又跳转了一次,然后 ?和它之后的参数都不见了 问题分析: 因为路由加载了两次 解决办法: ·1. 找到总的 la ...
- List和Array相互转换
List<String> list = new ArrayList<String>(); list.add("1"); list.add("2&q ...
- flutter GridView 网格布局
当数据量很大的时候用矩阵方式排列比较清晰.此时我们可以用网格列表组件 GridView 实 现布局. GridView 创建网格列表有多种方式,常用有以下两种. 1.可以通过 GridView.cou ...