spring-boot项目打包成一个docker镜像

5 篇文章 0 订阅
3 篇文章 0 订阅
  • 项目结构如图

注意在项目根目录下创建了一个Dockerfile的文件,文件内容暂时不看.

  • pom文件,需要在build中加入
<build>

   <plugins>

      <plugin>

         <groupId>org.springframework.boot</groupId>

         <artifactId>spring-boot-maven-plugin</artifactId>

      </plugin>

      <plugin>

         <groupId>com.spotify</groupId>

         <artifactId>dockerfile-maven-plugin</artifactId>

         <version>1.3.6</version>

         <configuration>

            <repository>docker/${project.artifactId}</repository>

            <buildArgs>

               <JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE>

            </buildArgs>

         </configuration>

      </plugin>

   </plugins>

</build>

其中,repository表示打包后得到的镜像的名称, buildArgs是Dockerfile中引用到的参数

  • 编辑Dockerfile文件:
FROM openjdk:8-jdk-alpine

VOLUME /tmp

ARG JAR_FILE

ADD ${JAR_FILE} app.jar

ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

其中ARG即pom文件中指定的参数,VOLUME 表示在镜像的目录中创建一个/tmp的文件目录,这一步是可选的,如果需要一些文件操作,建议通过这个参数指定文件目录供程序使用。

  • 以上是准备步骤,接下来打包并构建镜像:

首先打包jar文件,用的命令是mvn package(Idea的terminal中直接执行),生成的jar文件在target目录下

然后打包成镜像,命令是 mvn install dockerfile:build((同样实在Idea的terminal中直接执行))

  • 可以使用命令docker images查看所有镜像,然后运行这个镜像,会有相应的容器被创建(运行命令 docker run -d -p 8090:8080 <镜像名称>)

运行后会输出一长串字符,可以使用docker ps查看当前运行中的所有镜像如下图所示。

  • 查看容器的IP(可以用 docker inspect <容器名称> | grep IPAddress 查看IP),并使用IP地址+端口(此处是8090)在浏览器访问。

后记: 如果希望使用docker compose把mysql和spring boot项目放在一起构建镜像,可以参考我的另一篇文章Docker Compose: Spring Boot +MySQL+MyBatis

 

 

 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值