Azure Devops实践(5)- 构建springboot项目打包docker镜像及容器化部署
使用Azure Devops构建java springboot项目,创建镜像并容器化部署
1、创建一个springboot项目,我用现有的项目
目录结构如下,使用provider项目
在根目录下添加Dockerfile文件,文件内容如下
参考代码:
# Docker image for springboot file run
# VERSION 0.0.1
# Author: xujk
# 基础镜像使用java
FROM java:8
# 作者
MAINTAINER xujk <xjk27400861@163.com>
# VOLUME 指定了临时文件目录为/tmp。
# 其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp
VOLUME /tmp
# 将jar包添加到容器中并更名为app.jar
ADD target/provider-0.0.1-SNAPSHOT.jar app.jar
# 运行jar包
RUN bash -c 'touch /app.jar'
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"] #设置时区
RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone
2、在Devops创建项目,添加管道
添加git代码仓库连接
选择模板,maven项目
选择Default代理池
配置maven pom.xml文件的路径
后面默认的设置即可,先测试打包功能
运行管道,报错:在池 Default 中找不到满足指定要求的代理: maven, Agent.Version -gtVersion 2.144.0
分析应该是代理池主机上,没有安装maven,安装maven,参考url:https://www.cnblogs.com/wqlken/p/14090525.html, 在代理主机上安装maven安装完后,还是不行,重启了一下虚拟机,运行管道,maven打包springboot项目
jar包重新构建完成
修改pom.xml文件配置,构建provider项目
点击取消链接,修改pom.xml文件路径,改为构建provider,重新下构建打包,成功
添加一个作业,生成docker镜像,并推送到镜像服务器
运行管道,构建镜像并推送到docker hub上
添加删除镜像步骤,脚本可参考前面两篇构架.netcore的文章
注意:镜像名称都是小写,不知为何名称指定有大写,但是生成完只会都变成小写
运行完之后,就只剩下最新的镜像了,老版本都已删除
3、新建发布管道,部署应用
新建一个空作业
配置好项目
写入发布脚本
脚本参考
#!/bin/bash
name="springboot01"
cid=`docker inspect --format '{{.Id}}' ${name} 2>/dev/null`
if [[ ${#cid} -gt 0 ]]; then
docker stop $name
docker rm $name
echo "successed deleted container ${name}"
fi
imageid=`docker images --format {{.ID}} $name`
echo "准备删除旧镜像${imageid}"
if [[ ${#imageid} -gt 0 ]]; then
docker rmi -f $imageid
echo "successed deleted old image ${name}"
fi
docker pull docker.io/xjk27400861/springbootapp:$(Build.BuildId)
docker tag docker.io/xjk27400861/springbootapp:$(Build.BuildId) springbootapp:$(Build.BuildId)
docker run -it -d -p 8003:8080 --name springboot01 --privileged=true springbootapp:$(Build.BuildId)
docker logs springboot01
发布,部署应用
访问服务:http://192.168.231.139:8003/hello
部署成功
Azure Devops实践(5)- 构建springboot项目打包docker镜像及容器化部署的更多相关文章
- BI系统打包Docker镜像及容器化部署的具体实现
在过去的几年中,"云"作为明星热词站在了各种新潮技术之中,你可能使用过,但说不清它的原理:或者是没用过,但听过它的大名:也可能连它的名字都没听过,但你对这只蓝色鲸鱼一定十分眼熟.作 ...
- springboot项目打包docker镜像maven插件
<!-- profile docker config --> <profiles> <profile> <id>docker</id> &l ...
- 【Docker】Maven打包SpringBoot项目成Docker镜像并上传到Harbor仓库(Eclipse、STS、IDEA、Maven通用)
写在前面 最近,在研究如何使用Maven将SpringBoot项目打包成Docker镜像并发布到Harbor仓库,网上翻阅了很多博客和资料,发现大部分都是在复制粘贴别人的东西,没有经过实践的检验,根本 ...
- 将php项目打包docker镜像
简介:有时候我们需要将php的项目打包成docker镜像,这里介绍下 思路:我们php和apache结合一个镜像实现php项目的访问,mysql是一个单独的镜像 步骤: 1.首先我们在本地测试好自己的 ...
- 构建Springboot项目、实现简单的输出功能、将项目打包成可以执行的JAR包(详细图解过程)
1.构建SpringBoot项目 大致流程 1.新建工程 2.选择环境配置.jdk版本 3.选择 依赖(可省略.后续要手动在pom文件写) 4.项目名 1.1 图解建立过程 1.2 项目结构 友情提示 ...
- 用gradle把springboot项目打包成jar
``` 用gradle把springboot项目打包成jar ```### build.gradle 中添加 buildscript { repositories { mavenLocal() mav ...
- springboot项目打包运行
在springboot项目打包成jar包时,在cmd中使用java -jar **.jar时,浏览器无法访问. 解决方法:把项目改成war包项目,在pom文件中更改,并打成war包. 使用maven命 ...
- SpringBoot 项目打包后运行报 org.apache.ibatis.binding.BindingException
今天把本地的一个SpringBoot项目打包扔到Linux服务器上,启动执行,接口一访问就报错,但是在本地Eclipse中启动执行不报错,错误如下: org.apache.ibatis.binding ...
- SpringBoot项目打包成jar后,启动脚本
将springboot项目打包成jar后,上传至服务器,每次都需要手敲命令,重新部署项目,可将这些命令写入脚本中,直接运行. 启动脚本(start.sh): CUR_PATH=$(cd "$ ...
随机推荐
- 带有附件及图片正文的JavaMail邮件发送
1 package javamail; 2 3 import java.io.UnsupportedEncodingException; 4 import java.util.Properties; ...
- 笔记本Linux系统,修改合盖不待机
最近买了一个新笔记本,所以就把老的笔记本当作服务器使用了.但是一盒笔记本的盖子就会待机,真的是麻烦.操作如下可以解决问题: 1.编辑 logind.conf 文件,命令如下 vi /etc/syste ...
- 刷题-力扣-剑指 Offer 42. 连续子数组的最大和
剑指 Offer 42. 连续子数组的最大和 题目链接 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/lian-xu-zi-shu-zu-de ...
- OKR工作法读后感
<OKR工作法>把管理思想融入到一则创业故事中,故事细节经过了精心的设计,融入了管理智慧和踩坑填坑经验,每个细节都以小见大,耐人寻味.一千个读者,就有一千个哈姆雷特. 所以这次我不去点评大 ...
- Ubuntu16.04 Linux 下安装、配置SSH
本人在Win7+VMware下利用两个ubuntu虚拟机安装.配置.测试了SSH. 在Server端安装openssh-server. sudo apt-get install ssh # 安装ssh ...
- 5M1E,软件质量管理最佳解决方案
- 如何做好一个产品? - 用户.需求.文化.价值.设计.流程,这些因素缺一不可.- 那么,如何做好产品的质量管理?- 人.机器.物料.方法.环境.测量,这些因素同样缺一不可.能够影响产品质量波动的因 ...
- VMware 部署虚拟环境
2021-08-23 1. 版本介绍 本地主机操作系统:windows 10虚拟软件版本:VMware workstation 14centos镜像版本:centos 7.5 2. 设置 2.1 基础 ...
- Django的form组件——正则校验
from django.contrib import admin from django.urls import path from app01 import views urlpatterns = ...
- noip模拟38
\(\color{white}{\mathbb{深秋总有廖落处,雁归每是菊败时,名之以:残菊}}\) 这场比赛几乎全场都在打暴力,几乎人均切掉的 \(t1\) 没有想到双指针,\(t3\) 的暴力也没 ...
- token过期时间
token有两个有效期,在config/jwt.php下面 # ./config/jwt.php'ttl' => env('JWT_TTL', 600), ##600min=10h 'refre ...