当前位置 : 主页 > 编程语言 > java >

springboot docker原理及项目构建

来源:互联网 收集:自由互联 发布时间:2021-05-13
这篇文章主要介绍了springboot docker原理及项目构建,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 一、添加maven配置 propert

这篇文章主要介绍了springboot docker原理及项目构建,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

一、添加maven配置

<properties>
    <docker.image.prefix>ms4t</docker.image.prefix>
  </properties>

  <build>
    <finalName>eureka</finalName>
    <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.image.prefix}/${project.artifactId}</repository>
          <buildArgs>
            <JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE>
          </buildArgs>
        </configuration>
      </plugin>
    </plugins>
  </build>

二、创建Dockerfile

FROM openjdk:8-jdk-alpine
VOLUME /tmp
ARG JAR_FILE
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-jar","/app.jar"]

参数讲解:

  • FROM <image>:<tag> 需要一个基础镜像,可以是公共的或者私有的。
  • 后续构建会基于此镜像,如果同一个Dockerfile中建立多个镜像时,可以使用多个FROM指令
  • VOLUME 配置一个具有持久化功能的目录,主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp。改步骤是可选的,如果涉及到文件系统的应用就很有必要了
  • 。/tmp目录用来持久化到 Docker 数据文件夹,因为Spring Boot 使用的内嵌 Tomcat 容器默认使用 /tmp 作为工作目录
  • ARG 设置编译镜像时加入的参数, ENV 是设置容器的环境变量
  • COPY:只支持将本地文件复制到容器,还有个ADD更强大但复杂点
  • ENTRYPOINT 容器启动时执行的命令
  • EXPOSE 8080 暴露的镜像端口

三、构建

mvn install dockerfile:build

四、启动

docker run -d --name 名称 -p 对外端口:容器端口 镜像ID

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持自由互联。

网友评论