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一起启动

![blockchain](https://maziye.oss-cn-beijing.aliyuncs.com/1569635074%281%29.jpg "公众号")
公众号即可获得"Spring Cloud"教程

原文地址:https://www.cnblogs.com/ziyegediao/p/11758899.html

时间: 2024-08-29 14:02:07

maven 打包 spring boot 生成docker 镜像的相关文章

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:repackage (default) on project information: Execution default of goal org.springframework.boot:spring-boot-maven-plugin:1.3.5.RELEASE:repackage faile

Spring Boot用Docker部署

Spring Boot与Docker部署 开启Docker远程访问 首先需要开启docker远程访问功能,以便可以进行远程操作. CentOS 6 修改/etc/default/docker文件,重启后生效(service docker restart). DOCKER_OPTS="-H=unix:///var/run/docker.sock -H=0.0.0.0:2375" CentOS 7 打开/usr/lib/systemd/system/docker.service文件,修改E

Spring Boot与Docker部署

Spring Boot与Docker部署 开启Docker远程访问 首先需要开启docker远程访问功能,以便可以进行远程操作. CentOS 6 修改/etc/default/docker文件,重启后生效(service docker restart). DOCKER_OPTS="-H=unix:///var/run/docker.sock -H=0.0.0.0:2375" CentOS 7 打开/usr/lib/systemd/system/docker.service文件,修改E

在eclipse中安装maven和spring boot

在eclipse中安装maven和spring boot 1.打开help->install new software 2.点Add,Name(maven),Location(http://download.eclipse.org/technology/m2e/releases),OK,select然后next到安装中,等待安装完成. 3.新建maven项目 File->New->Project, 选择Maven Project next到 输入artifact id(项目名).grou

Maven 搭建spring boot多模块项目

Maven 搭建spring boot多模块项目 备注:所有项目都在idea中创建 1.idea创建maven项目 1-1: 删除src,target目录,只保留pom.xml 1-2: 根目录pom.xml可被子模块继承,因此项目只是demo,未考虑太多性能问题,所以将诸多依赖 都写在根级`pom.xml`,子模块只需继承就可以使用. 1-3: 根级pom.xml文件在附录1 1-4: 依赖模块 mybatis spring-boot相关模块 2.创建子模块(module) 2-1: file

idea中用maven打包spring的java项目(非web)

之前一直用安装的maven打包spring的javaweb项目,用的是mvn assembly:assembly打包,这次打包非web的spring项目,遇到许多问题,特记录一下正确步骤. 1.配置pom.xml 这里不用assembly,因为assembly在打包时只会把第一次遇到的文件打入jar包,后面遇到的都会skip掉.也就是说assembly把我的Spring描述文件都忽略掉咯.报错就是:找不到 spring-context.xml (我的配置spring的xml),所以这里用 mav

使用Maven插件构建SpringBoot项目,生成Docker镜像push到DockerHub上

一个用于构建和推送Docker镜像的Maven插件. 使用Maven插件构建Docker镜像,将Docker镜像push到DockerHub上,或者私有仓库,上一篇文章是手写Dockerfile,这篇文章借助开源插件docker-maven-plugin 进行操作 以下操作.默认你已经阅读过我上一篇文章: Docker 部署 SpringBoot 项目整合 Redis 镜像做访问计数Demo http://www.ymq.io/2018/01/11/Docker-deploy-spring-bo

集成maven和Spring boot的profile功能

思路:maven支持profile功能,当使用maven profile打包时,可以打包指定目录和指定文件,且可以修改文件中的变量.spring boot也支持profile功能,只要在application.properties文件中指定spring.profiles.active=xxx 即可,其中xxx是一个变量,当maven打包时,修改这个变量即可. 1.配置maven 的profile <!-- 不同环境查找不同配置文件 --> <profiles> <profil

docker 部署Spring Boot:Docker化Spring Boot应用程序

第一章 1.创建项目存放目录 mkdir /root/sproot -p 2.准备好Spring Boot应用程序 jar 包 testrest.jar 第二章 1. 安装docker 在所有节点执行:   setenforce 0 iptables -F iptables -t nat -F iptables -I FORWARD -s 0.0.0.0/0 -d 0.0.0.0/0 -j ACCEPT iptables -I INPUT -s 192.168.0.0/24 -j ACCEPT