springboot获取resources路径_Docker构建SpringBoot应用
1.基于Dockerfile构建SpringBoot镜像
1.1准备工作
将SpringBoot项目通过maven打成jar包: mvn clean package
1.2使用Dockerfile构建镜像
- step1 在存放jar所在目录下创建Dockerfile文件
touch Dockerfile
- step2 编辑Dockerfile增加以下内容
FROM java:8MAINTAINER niugang<863263957@qq.com>RUN mkdir -p /opt/springappADD demo-0.0.1.jar /opt/springappEXPOSE 8088ENTRYPOINT ["java","-jar","/opt/springapp/demo-0.0.1.jar"]
- step3 构建镜像
docker build -t springbootdemo:1.0 .
- step4 启动容器
docker run -d -p 8088:8088 --name sb springbootdemo:1.0
在启动容器是可以添加数据卷,程序日志映射到宿主机,方便后期排查问题
注意:在启动过程中,一直起不起来,然后通过前台启动查看了日志。
报了如下错误:WARNING: IPv4 forwarding is disabled. Networking will not work.
解决:需要做如下配置
vim/etc/sysctl.confnet.ipv4.ip_forward=1 #添加这段代码
重启network服务
systemctl restart network && systemctl restart docker
查看是否修改成功 (备注:返回1,就是成功)
[root@docker-node2 ~]# sysctl net.ipv4.ip_forwardnet.ipv4.ip_forward = 1
- step5 调用你的springboot应用,验证其是否正确
2.使用Maven插件构建Docker镜像
Maven是一个强大的项目管理与构建工具。如果可以使用Maven构建Docker镜像,以下几款Maven的Docker插件比较常用。
插件名称 官方地址 docker-maven-plugin https://github.com/spotify/docker-maven-plugin
上面插件可以从github看到此插件已经不再推荐了。推荐使用
https://github.com/spotify/dockerfile-maven 具体操作步骤上面有介绍
docker-maven-plugin https://github.com/fabric8io/docker-maven-plugin
docker-maven-plugin https://github.com/bibryam/docker-maven-plugin
2.1直接配置方式
- step 1
在你的springboot应用的pom.xml中增加如下配置
com.spotify docker-maven-plugin 0.4.13 niugang/springboot:3.0 java ["java", "-jar", "/${project.build.finalName}.jar"] / ${project.build.directory} ${project.build.finalName}.jar
简要说明一下插件的配置:
- imageName:用于指定镜像名称,其中niugang是仓库名称,springboot是镜像名称,3.0是标签名称
- baseImage:用于指定基础镜像,类似于Dockerfile中的FROM指令。
- entrypoint:类似于Dockerfile的ENTRYPOINT指令。
- resources.resource.directory:用于指定需要复制的根目录,${project.build.directory}表示target目录。
- resources.resource.include:用于指定需要复制的文件。${project.build.finalName}.jar指的是打包后的jar包文件。
- step2 进入代码路径下,执行如下命令
mvn clean package docker:build
- step3 查看镜像
![](/assets/blank.gif)
- step4 启动容器
docker run -d -p 8088:8088 --name myspringboot niugang/springboot:3.0
- step5 访问测试
2.2 读取Dockerfile进行构建
在2.1中只需要在pom.xm中配置,执行命令就可以生成docker镜像。在很多时候希望通过Dockerfile生成Docker镜像。
- step1 在项目src/main/resources目录下新建docker文件夹,在文件夹下新建Dockerfile文件,增加如下内容
FROM java:8MAINTAINER niugang<863263957@qq.com>RUN mkdir -p /docker/imagesADD demo-0.0.1-SNAPSHOT.jar /docker/imagesENTRYPOINT ["java","-jar","/docker/images/demo-0.0.1-SNAPSHOT.jar"]
- step2 pom.xml修改为如下
com.spotify docker-maven-plugin 0.4.13 niugang/springboot:4.0 ${project.basedir}/src/main/resources/docker / ${project.build.directory} ${project.build.finalName}.jar
可以看到,不再制定baseImage和entrypoint,而是使用dockerDirectory指定Dockerfile所在路径。即时指定了baseImage和entrypoint也将被忽略。
- step3 进入代码路径下,执行如下命令
mvn clean package docker:build
查看镜像
docker images
- step4 启动容器
docker run -d -p 8088:8088 --name myspringboot niugang/springboot:4.0
- step5 访问测试
2.3 将插件绑定在某个phase执行
很多场景下,我们有这样的需求,执行例如 mvn clean package 时,插件就自动为我们构建Docker镜像。要想实现这点,我们只需将插件的goal绑定在某个phase即可。
phase和goal可以这样理解:maven命令格式是: mvn phase:goal ,例如 mvnpackagedocker:build 。那么,package和docker都是phase,build则是goal。
- step1 编辑pom.xml 内容如下
com.spotify docker-maven-plugin 0.4.13 build-images package build niugang/springboot:5.0 ${project.basedir}/src/main/resources/docker / ${project.build.directory} ${project.build.finalName}.jar
- step2进入代码路径下,执行如下命令
mvn clean package
- step3 查看镜像
由配置可知,我们只需添加如下配置:
build-image package build
就可将插件绑定在package这个phase上。也就是说,用户只需执行 mvn package ,就会自动执行 mvn docker:build 。当然,读者也可按照需求,将插件绑定到其他的phase。
springboot获取resources路径_Docker构建SpringBoot应用相关推荐
- springboot 获取项目路径_怎样学习 SpringBoot
学习 SpringBoot 需要做哪些准备? IDE:IDEA 基础工具:JDK1.8.Maven SpringBoot 背景介绍 什么是 SpringBoot Spring Boot是 Spring ...
- springboot获取项目路径_springboot学习
1. Thymeleaf语法详解-字符串操作 (1) th:text的作用是什么? Html中输出的值 (2) th:value的作用是什么? 可以放置到inputvalue标签中的值 (3) 什么是 ...
- springboot获取文件路径
1 this.getClass().getResource("/static/index.html").getPath() 注意:this.getClass().getResour ...
- Java SpringBoot 获取项目路径
String path = ResourceUtils.getURL("classpath:").getPath();
- Dockerfile构建Springboot镜像
Dockerfile构建Springboot镜像 文章目录 Dockerfile构建Springboot镜像 简介 实例演示 前期准备 Docker环境 Springboot项目 Dockerfile ...
- springboot获取静态图片路径_Springboot通过图片路径形式获取图片
Springboot通过图片路径形式获取图片 一致以来都是用 http://127.0.0.1:8888/getPhoto?imgUrl=1.jpg 的形式获取数据,今天突然要 http://127. ...
- docker简单介绍、安装使用、常用命令、docker构建springboot项目、k8s安装
docker简单介绍 docker的意义 把事情简单化 Docker友好的基于CLI的工作流使各种技能水平的开发人员都可以访问构建,共享和运行容器化应用程序. 快速移动 从单个软件包安装即可在几分钟内 ...
- springboot+thymeleaf访问绝对路径图片、springboot配置虚拟路径
springboot项目默认的资源放在static文件夹下面,如图片.样式.js等等(当然也可以通过放在resources.META-INF等文件夹下面,不过有时候也需要配置一下),但是如果我们的图片 ...
- SpringBoot获取Ip并解析地址,Docker部署 (ip2region.xdb)
这里写自定义目录标题 SpringBoot获取Ip并解析地址,Docker部署 (ip2region.xdb) 流程 1. 引入依赖 2.获取IP工具类 3.解析IP地址工具类 SpringBoot获 ...
最新文章
- linux系统定时检查网络状态python脚本
- 算法打卡39:喷水装置
- 蛤玮学计网 -- 简单的判断ip
- The Definitive Guide to SWT and JFace 目录
- windows7下面sublime中使用virtualenv切换python版本并运行
- 计算机毕业设计(18)java毕设作品之旅游景区景点售票购票系统
- gcc怎么编写c语言程序,gcc如何编译C语言程序
- php 固定表头,固定表头和首列的表格
- 计算机视觉相关公开数据集(免费下载)
- 零基础入门STM32编程(一)
- 那个程序员的 Linux 常用软件清单 | Linux 工具篇
- cocos2dx报错OpenGL error 0x0501
- .bat脚本初体验——使用批处理bat清洗文件名
- 元编程: is_floating_point<Tp>
- 能自动摊铺施工的公路滑模机多少钱一台
- 《软件工程导论》考研复试整理
- Permissions 0777 for ‘/home/***/.ssh/id_rsa‘ are too open.
- 水星路由服务器无信号,水星路由器MW326R没有WiFi信号了怎么回事?【图解】
- 相信技术的力量 - RSAC 2020 (2)
- dotnetbar-SuperTabControl禁止调整顺序
热门文章
- 交换机端口mtu值最大_大中型监控系统如何正确选择交换机
- ubuntu 远程访问mysql_Ubuntu下远程访问MySQL数据库
- Apache Dubbo 高危漏洞通告
- 阿里云盘又送福利啦?空间大时间长,不要犹豫快上车!
- 字节跳动再扩招1000人,招聘要求让人窒息
- 皮一皮:最头铁的汪峰...
- 每日一皮:这个食堂好...
- 每日一皮:两个实习生的结对编程...
- 面试官,别再问高并发了!
- 听过TB、PB级大数据,ZB级的大数据探索与应用实践是怎么样的?【附PPT】