springboot docker原理及專案構建
阿新 • • 發佈:2020-01-07
這篇文章主要介紹了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
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。