maven 打包 spring boot 生成docker 镜像
1.所使用材料 ,spring boot 项目 基于maven ,maven 工具, docker工具
ps:为啥使用 docker 公司微服务需要启动太多,有两个优点吧! 1.方便管理,2.减少服务占用内存量
2.上手
a.新建Dockerfile文件如下目录
b.Dockerfile文件内容
FROM openjdk:8-jdk-alpine
VOLUME /tmp
ARG JAR_FILE
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
ps:
FROM: 第一条指令必须是FROM指令 (环境依赖 jdk 版本等)
VOLUME: 作用是创建在本地主机或其他容器可以挂载的数据卷,用来存放数据。
ARG: 定义一个变量
JAR_FILE: 为pom文件中项目定义的路径地址
COPY: 复制本地主机src目录或文件到容器的desc目录,desc不存在时会自动创建。
ENTRYPOINT: 每个Dockerfile中只能有一个ENTRYPOINT,当有多个时最后一个生效。
c.pom文件修改
<properties>
<docker.image.prefix>springio</docker.image.prefix>
</properties>
<plugin>
<groupId>com.spotify</groupId>
<artifactId>dockerfile-maven-plugin</artifactId>
<version>1.3.6</version>
<configuration>
<repository>${docker.image.prefix}/${project.artifactId}</repository>
<buildArgs>
<JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE>
</buildArgs>
</configuration>
</plugin>
</plugins>
这个时候 项目中文件修改告一段落
d.需要在maven中添加配置(不加入可能会导致 docker:build 不识别) 否则会报 No plugin found for prefix 'docker' in the current project and in the plugin groups...
e.docker 配置需要更改(勾选)否则会报 localhost:2375 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect
3.最后命令
a.mvn package dockerfile:build(项目路径下)
b.docker 查看镜像 docker images
c.运行项目 docker run -d -p 8099:8099 springio/xlw_demo
4.总结
a.问题 如果代码更改,docker镜像中还是老代码,需要手动删除很不方便
b.启动的时候需要命令号窗口启动不方便
c.打开软件时能否跟随docker一起启动

公众号即可获得"Spring Cloud"教程
maven 打包 spring boot 生成docker 镜像的更多相关文章
- CentOS7 下 配置Docker远程访问 与 windows下使用maven构筑Spring Boot 的 Docker镜像到远程服务端
1.设置Docker服务端,以支持远程访问: 修改docker服务端配置文件,命令: vim /usr/lib/systemd/system/docker.service 修改后: [Unit] De ...
- Spring Boot 创建 Docker 镜像
随着越来越多的组织转向容器和虚拟服务器,Docker正成为软件开发工作流程中一个更重要的部分.为此,Spring Boot 2.3中最新的功能之中,提供了为Spring Boot应用程序创建 Dock ...
- 【Docker】Maven打包SpringBoot项目成Docker镜像并上传到Harbor仓库(Eclipse、STS、IDEA、Maven通用)
写在前面 最近,在研究如何使用Maven将SpringBoot项目打包成Docker镜像并发布到Harbor仓库,网上翻阅了很多博客和资料,发现大部分都是在复制粘贴别人的东西,没有经过实践的检验,根本 ...
- maven打包spring boot项目及跳过test文件
打包命令 mvn clean package // 会先清理现有的target目录 or mvn package 跳过测试文件 1. idea全局配置 右侧maven会取消test选项 2. 命令行附 ...
- 使用Maven插件构建Spring Boot应用程序镜像
使用Maven插件构建Spring Boot应用程序的Docker镜像. 环境准备 1.Linux系统 2.安装JDK,Maven 3.安装Docker 应用实践 1.在应用程序根目录下添加Docke ...
- Maven使用package打包Spring Boot时出现:Unable to find a single main class from the following candidates的问题解决
问题如下: [ERROR] Failed to execute goal org.springframework.boot:spring-boot-maven-plugin:1.3.5.RELEASE ...
- Maven插件Jib配合Harbor生成Docker镜像
1 说明 Maven插件Jib暂不支持https的自签名,因此只能配置以Http的方式访问Harbor私有仓库 以下基于SpringBoot2.x进行配置 2 Maven配置 2.1 pom.xml中 ...
- jenkins自动打包生成docker镜像后自动发布并nginx代理访问
之前曾写过docker及jenkins基础使用 https://www.cnblogs.com/xiaochangwei/category/816943.html 现在搭建环境的功能为: 1.jen ...
- spring boot——结合docker
spring boot——结合docker 前言 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 liunx机器上,也可以实现虚 ...
随机推荐
- JS 延时函数
function sleep(delay) { var start = (new Date()).getTime(); while((new Date()).getTime() - start < ...
- python正则表达式字符记录
代码 功能 . 匹配任意1个字符(除了\n) [] 匹配[]中列举的字符 \d 匹配数字,即0-9 \D 匹配非数字, 即不是数字 \s 匹配空白,即空格,tab键 \S 匹配非空白 \w ...
- jenkins自动化部署项目5 -- 系统管理-系统设置ssh配置
[系统管理]-[系统设置] 如果应用服务(前端后台)要部署在linux服务器上,我选择的是用ssh 为了jenkins登录远程登录linux服务器可以免密登录,先配置公钥和私钥: 我是在windows ...
- AppBoxFuture: Raft快照及日志截断回收
AppBoxFuture的存储引擎依赖Raft一致性协议来保证各个分区副本的一致性,如果不处理Raft日志将不断增长,因此需要特定的机制(定期或每处理一定数量的日志)来回收那些无用的日志数据.通过 ...
- Java利用反射排序
前言 Java为我们提供了几种排序得方法,比如Arrays和Collections类,但是前提是数组或者集合中的元素都必须实现Comparable接口,基本的数据类型都已经实现了Comparable接 ...
- Scala 学习笔记之函数(2)
class OldStudent extends Student { def filterName(s: String, f: String => String) = { if (s != nu ...
- Java8 Lambda表达式详解手册及实例
先贩卖一下焦虑,Java8发于2014年3月18日,距离现在已经快6年了,如果你对Java8的新特性还没有应用,甚至还一无所知,那你真得关注公众号"程序新视界",好好系列的学习一下 ...
- Android开发——RecyclerView实现下载列表
本篇记录的是使用Jsoup框架爬取网页内容,结合Android的RecyclerView,从而实现批量下载小说的功能(也是我的APP星之小说下载器Android版的核心功能),思路仅供参考 本文使用了 ...
- IntelliJ IDEA使用JUnit单元测试
转载:https://www.cnblogs.com/huaxingtianxia/p/5563111.html 前言 单元测试的基本使用 一.环境配置 使用idea IDE 进行单元测试,首先需要安 ...
- e课表项目第二次冲刺周期第二天
昨天干了什么? 昨天与我们小组的成员商量了一个重大的决定,确定了我们转型发展的主题,简要的设计了我们软件要实现的功能,并且完成了首导航栏的设计,和一部分框架的内容填充. 今天干了什么? 我们组今天通过 ...