美文网首页
Springboot应用打包docker镜像

Springboot应用打包docker镜像

作者: braveheart075 | 来源:发表于2018-12-08 10:55 被阅读0次

    废话不多说,直接开始步骤:

    • 创建springboot应用,这个我就不写了,大概有几种方法:

    1、采用Spring.io
    2、采用mvn archetype:generate.....方式

    • 创建好应用后,重点是pom文件,采用maven方式来打镜像,所以pom.xml中需要加入如下信息:
          <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
          </plugin>
          <plugin>
            <groupId>com.spotify</groupId>
            <artifactId>docker-maven-plugin</artifactId>
            <version>0.4.13</version>
            <configuration>
              <imageName>${project.artifactId}</imageName>
              <dockerDirectory>./</dockerDirectory>
            </configuration>
          </plugin>
    
    • 解释下dockerDirectory就是Dockerfile的路径地址。你即将要写Dockerfile文件了。

    • 开始写Dockerfile文件

    FROM openjdk:8-jdk-alpine
    VOLUME /temp
    EXPOSE 8889
    ARG JAR_FILE=target/webflux-sample-1.0-SNAPSHOT.jar
    ADD ${JAR_FILE} app.jar
    ENTRYPOINT ["java","-jar","app.jar"]
    

    解释下:
    from 是镜像基础
    volumn是定一个文件持久化目录
    expose 暴露出8889端口,在启动的时候,只要直接-P就行了,这个是大写的P。
    ARG是定义变量,下面会用到。
    ADD开始复制文件到容器中,注意和COPY的区别,不需要写路径的。
    ENTRYPOINT是容器启动的时候执行命令。

    所以,很简单,一个标准的springboot的镜像Dockerfile就这么写好了。存放在项目的根目录下。


    Screen Shot 2018-12-08 at 10.47.58 AM.png
    • 执行mvn clean package docker:build命令,可以直接看到执行的结果:


      Screen Shot 2018-12-08 at 10.50.19 AM.png

    那么镜像基本就打好了在本地。通过命令来看下:


    Screen Shot 2018-12-08 at 10.51.55 AM.png

    看到第一个镜像了么,就是本地镜像了。

    • 好了,最后一步,启动镜像:


      Screen Shot 2018-12-08 at 10.54.01 AM.png

      启动成功了,通过本机浏览器访问:localhost:8889/demo即能看到“hello world!”

    至于docker 的启动命令,大家自己去熟悉。

    后面有时间再给大家分享下docker-compose和k8s相关。

    相关文章

      网友评论

          本文标题:Springboot应用打包docker镜像

          本文链接:https://www.haomeiwen.com/subject/mbzfhqtx.html