• Docker将SpringBoot打成的jar包在docker环境中打包成镜像


    1.我的场景

      我开发了一个自己的博客项目,发现每次上传jar包执行java -jar 这个命令启动这个项目很麻烦,我又不想写脚本;我的数据库什么的等其他环境都是使用docker来安装的,发现 docker安装 我需要的开发环境真的很方便,都是别人做好的镜像,直接pull拉下来就好;然后启动镜像的时候做好端口映射以及安装目录的映射就好了,后面启动镜像很方便只需要docker start +容器id就好了,好了不多说,我们现在就开始打包spingboot项目吧。 

    2.打包springboot项目

    执行mvn package 命令,将项目使用maven打成jar包如下图:

    3.DockerFile配置内容

    FROM java:8-alpine
    ADD my-blog-4.0.0-SNAPSHOT.jar app.jar
    EXPOSE 28083
    ENTRYPOINT ["java","-jar","/app.jar"]

    第一行 需要java8环境的支持
    第二行 my-blog-4.0.0-SNAPSHOT.jar为你SpringBoot打包最终的成包名称,别名为app.jar
    第三行 容器对外映射的端口
    第四行,ENTRYPOINT 执行项目 app.jar

    4.将前面第二步打好的jar包和第三步编辑好的DockerFile文件上传至服务器(需在同一目录下)

    这边笔者的docker不是装在本机的,所以需要将这两个文件上传至服务器,如果你在本机有docker环境那么只需要放在一个目录下直接构建就可以了呢。

    5.构建docker镜像

    在存放jar包和DockerFile的目录下执行下面的命令,注意后面 有个小点不能少

    docker build -t my-blog .

    运行成功后如下图:

    看到上图 后就说明您的springboot项目打包成 docker镜像成功了,这个时候执行下面的命令可以查看你的 镜像:

    docker images

    看到这个的 时候,就说明我们的springboot jar包已经挂载了,下面就可以开始运行你的容器了:

    6.启动容器

    docker run -d -p 28083:28083 my-blog

    -p这个属性我这边详细说一下: 28083:28083的意思是将我宿主机的28083端口映射到容易端口28083,我在前面已经配置过这个端口了

    看到如下返回一串id就代表容器启动成功啦

  • 相关阅读:
    homebrew
    Flutter状态管理之provide和provider的使用区别
    Flutter Bloc状态管理 简单上手
    Flutter 路由传入中文参数报错无法push问题
    Flutter 一些常用第三方库、插件
    js替换字符串中的空格,换行符 或 替换成<br>
    Flutter状态管理Provider,简单上手
    Flutter Resolving dependencies...很慢解决办法
    Flutter布局--appbar导航栏和状态栏
    Flutter运行报错 `kernel_snapshot for errors` 解决方案
  • 原文地址:https://www.cnblogs.com/MrXiaoAndDong/p/docker_package_jar.html
Copyright © 2020-2023  润新知