1. 程式人生 > 程式設計 >springboot docker原理及專案構建

springboot docker原理及專案構建

這篇文章主要介紹了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

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。