1. 程式人生 > >Spring Boot專案打包成docker映象

Spring Boot專案打包成docker映象

如何完成這篇教程

像大多數的Spring系列教程 Getting Started guides,你可以從頭開始,完成每一步,也可以跳過已經熟悉的基本構建步驟。 無論哪種方式,你都可以成功。

使用maven構建

首先你得安裝構建指令碼. 你可以使用你喜歡的構建系統去構建Spring應用,你可以前往Maven官網來指導你安裝。 如果你對Maven不熟悉,請參閱使用Maven構建Java專案.

建立目錄結構

在你當前專案工作目錄中,建立如下子目錄:
1 2 3 4 └── src           └── main                       └── java
                                  └── 應用包名
如在Linux系統下使用mkdir -p src/main/java/應用包名來建立。 pom.xml
  1. <?xmlversion="1.0"encoding="UTF-8"?>
  2. <modelVersion>4.0.0</modelVersion>
  3. <groupId>org.springframework</groupId>
  4. <artifactId>gs-spring-boot-docker</artifactId>
  5. <version
    >0.1.0</version>
  6. <parent>
  7. <groupId>org.springframework.boot</groupId>
  8. <artifactId>spring-boot-starter-parent</artifactId>
  9. <version>1.5.4.RELEASE</version>
  10. </parent>
  11. <properties>
  12. <java.version>1.8</java.version>
  13. </properties>
  14. <
    dependencies>
  15. <dependency>
  16. <groupId>org.springframework.boot</groupId>
  17. <artifactId>spring-boot-starter-web</artifactId>
  18. </dependency>
  19. <dependency>
  20. <groupId>org.springframework.boot</groupId>
  21. <artifactId>spring-boot-starter-test</artifactId>
  22. <scope>test</scope>
  23. </dependency>
  24. </dependencies>
  25. <build>
  26. <plugins>
  27. <plugin>
  28. <groupId>org.springframework.boot</groupId>
  29. <artifactId>spring-boot-maven-plugin</artifactId>
  30. </plugin>
  31. </plugins>
  32. </build>
  33. </project>
下面是我的理解和專案截圖:
  • 它集中了classpath下的所有jar,並構建一個可執行的“uber-jar”,這樣可以更方便地執行和釋出服務。
  • 它查詢public static void main()方法並標記該類為可執行類。
  • 它提供了一個內建的依賴解析器,將應用與Spring Boot依賴的版本號進行匹配。你可以修改(override)成你希望的版本,但它預設為Spring Boot選擇的版本。

使用你的IDE構建

建立一個Spring Boot應用程式

現在你可以建立一個簡單的Spring Boot應用程式。 src/main/java/hello/Application.java print?
  1. package hello;  
  2. import org.springframework.boot.SpringApplication;  
  3. import org.springframework.boot.autoconfigure.SpringBootApplication;  
  4. import org.springframework.web.bind.annotation.RequestMapping;  
  5. import org.springframework.web.bind.annotation.RestController;  
  6. @SpringBootApplication
  7. @RestController
  8. publicclass Application {  
  9. @RequestMapping("/")  
  10. public String home() {  
  11. return"Hello Docker World";  
  12.     }  
  13. publicstaticvoid main(String[] args) {  
  14.         SpringApplication.run(Application.class, args);  
  15.     }  
  16. }  
這個類使用@SpringBootApplication註解和@RestController註解標記,表示這個類已經準備好使用Spring MVC來處理web請求。@RequestMapping對映/home()方法上,這個方法返回Hello Docker World的響應。main()方法調SpringApplication.run()方法來啟動應用程式。 現在你可以在沒有Docker的情況下執行該應用程式。 如果你使用gradle構建的Spring Boot應用程式,執行: ./gradlew build && java -jar build/libs/gs-spring-boot-docker-0.1.0.jar 如果你使用maven構建的,執行: ./mvnw package && java -jar target/gs-spring-boot-docker-0.1.0.jar 然後訪問localhost:8080就可以看見Hello Docker World字樣。

使你的應用程式容器化

Docker有一個Dockerfile檔案格式的檔案,並且使用指定的映象作為基礎映象。接下來我們去建立一個Dockerfile在Spring Boot應用程式中。 Dockerfile
1 2 3 4 5 FROM openjdk:8-jdk-alpine VOLUME /tmp ADD target/gs-spring-boot-docker-0.1.0.jar app.jar ENV JAVA_OPTS="" ENTRYPOINT exec java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar
下面是我的理解和專案截圖:
這Dockerfile很簡單,但是已經包含了你執行這個Spring Boot應用程式的所有東西並且沒有多餘的東西:僅僅只有Java和一個Jar檔案。應用程式的jar檔案(檔名為app.jar)被新增到容器中,執行 ENTRYPOINT
我們增加了一個VOLUME指向”/tmp”,因為那是Spring Boot應用程式為Tomcat建立的預設工作目錄。作用是在你的主機”/var/lib/docker”目錄下建立一個臨時的檔案,並且連結到容器中的”/tmp”目錄。對於簡單程式這一步是可選的,但是對於其他想要真實寫入檔案系統的Spring Boot應用程式又是必選的。 我們增加了一個指向”/dev/urandom”的Tomcat系統屬性來縮小Tomcat的啟動時間。 如果你使用的是boot2docker,在你使用Docker命令或者使用構建工具構建(它執行在守護程序,在虛擬機器上為你工作)之前,你必須先啟動它。
構建Docker映象,你可以使用一些諸如Gradle或Maven的工具或者藉助社群(強烈感謝TransmodeSpotify提供這些工具)。

使用Maven構建Docker映象

在Maven的pom.xml中,你應該增加一個外掛,如下。(參閱the plugin documentation獲取更多資訊)。 pom.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 <properties> <docker.image.prefix>springio</docker.image.prefix> </properties> <build> <plugins> <plugin> <groupId>com.spotify</groupId> <artifactId>dockerfile-maven-plugin</artifactId> <version>1.3.4</version> <configuration> <repository>${docker.image.prefix}/${project.artifactId}</repository> </configuration> </plugin> </plugins> </build>
配置指定了兩個東西:
  • 相關推薦

    Spring Boot專案打包docker映象

    如何完成這篇教程 像大多數的Spring系列教程 Getting Started guides,你可以從頭開始,完成每一步,也可以跳過已經熟悉的基本構建步驟。 無論哪種方式,你都可以成功。 使用maven構建 首先你得安裝構建指令碼. 你可以使用你喜歡的構建系

    spring boot專案打包war 並在tomcat上執行的步驟詳解

    把spring-boot專案按照平常的web專案一樣釋出到tomcat容器下 一、修改打包形式 在pom.xml裡設定 <packaging>war</packaging> 二、移除嵌入式tomcat外掛 在pom.xml裡找到spri

    spring boot專案打包war

    1 pom.xml打包方式修改為war 2移除spring boot自帶的tomcat包 3新增serverlet-api(編譯階段需要) <dependency>             <groupId>org.springframework

    將Web專案打包Docker映象,並推送到遠端

           還在實習,最近做完專案收尾時,大佬叫我自己學習下怎麼使用docker,以後自己推專案.從來沒有接觸過,搗鼓了大半天,才學會最基礎的使用,記錄一下.        環境是spring boot 用gradle管理;         首先直接將專案整個(或者

    IDEA把spring-boot專案打包jar

    1.開啟專案,然後右擊專案選中‘Open Module Settings’進入project Structure( 快捷鍵 Ctrl+Shift+Alt+S或者File->Project Stru

    spring boot專案打包war並在tomcat上執行的步驟

    原文地址:http://m.blog.csdn.net/article/details?id=52515226 把spring-boot專案按照平常的web專案一樣釋出到tomcat容器下 一、修改打包形式 在pom.xml裡設定 <packaging>

    Spring boot專案打包jar在linux環境下設定開機自啟動【原創】

    #!/bin/bash # The three branches of the scouting program,Add to auto. # chkconfig: 2345 20 80 # description: py-0.0.1-SNAPSHOT-exec.jar #

    在IDEA中如何將Spring boot專案打包可執行的jar包併發布到linux伺服器

    這兩年微服務很流行,這裡簡單介紹一下如何將自己使用idea寫的微服務打包成一個可執行的jar包,併發布到linux伺服器的步驟。因為spring boot有內建的tomcat所以一般使用內建的tomcat就可以可,當然也使用外部的tomcat容器。 如有疑問可

    Spring Boot學習總結(10)——SpringBoot打包Docker映象

    <build><!--定義jar檔名,可以自定義--><finalName>${project.name}-${project.version}</finalN

    Spring boot應用打包映象放到docker中執行

    學習docker,需要把專案打包成映象,所以第一步首先得把專案打成war包,這樣才能丟上去。 打包成war 這一步在傳統java web專案中看起來非常簡單一步,但是Spring boot卻有小許不同。 增加SpringBootServletIni

    spring boot專案執行在docker容器的tomcat映象

    docker的概念和作用我就不介紹了,網上有很多資料,理解起來也不難,主要就是倉庫,映象和容器三個概念。我這裡是是把spring boot專案執行在docker容器的tomcat映象下所以要準備一個war包。想以jar包的方式執行的話也比較簡單,不做介紹。

    Spring boot 專案可執行Jar包,及相關注意事項(main-class、缺少 xsd、重複打包依賴)

    最近在看 spring boot 的東西,覺得很方便,很好用。對於一個簡單的REST服務,都不要自己部署Tomcat了,直接在 IDE 裡 run 一個包含 main 函式的主類就可以了。 但是,轉念一想,到了真正需要部署應用的時候,不可能通過 IDE 去部署

    Spring boot專案打包部署到伺服器

    為什麼要把SpringBoot打成war包 正常情況下SpringBoot專案是以jar包的形式,通過命令列: java -jar demo.jar   來執行的,並且SpringBoot是內嵌Tomcat伺服器,所以每次重新啟動都是用的新的Tomcat伺服器。正

    在IDEA中如何將多模組Spring boot專案打包

    SpringBoot就是一個內嵌WEB伺服器(tomcat/jetty)可執行程式的框架。 所以開發的web應用不需要作為war包部署到web伺服器中,而是作為一個可執行程式,可執行的jar包部署就可以了。 專案的釋出: 1.修改父模組pom檔案  去掉maven打包

    spring boot專案war包

    1  pom檔案中將打包形式 jar 修改為war     <packaging>war</packaging> 2 不使用自帶的tomcat <dependency>         <groupId>org.spri

    spring boot 專案war包部署到伺服器

          這是spring boot學習的第二篇了,在上一篇已經整合了spring boot專案了,如果還有小夥伴沒有看得可以先去看第一篇        到這裡的小夥伴應該都是會整合基本的spring boot專案 ,並且可以在本地工具上執行訪問了,如果還做不到的,說明你沒有用心哦o( ̄ヘ ̄o#)

    spring boot 服務間傳輸Docker映象,並載入映象

    springboot服務間介面呼叫很簡單,但是關於呼叫介面上傳檔案經常走彎路,故此總結一下: 負責上傳檔案的服務A(): @RequestMapping(value="/loadToRepository", consumes = MediaType.MULTIPART_F

    Spring Boot」 推送Docker映象到阿里雲映象服務

    容器映象服務(Container Registry)提供安全的應用映象託管能力,精確的映象安全掃描功能,穩定的映象構建服務,便捷的映象授權功能,方便使用者進行映象全生命週期管理。容器映象服務簡化了Registry的搭建運維工作,支援多地域的映象託管,並聯合容器服

    在Eclipse中如何將spring boot專案的jar包,並且雙擊執行cmd 執行jar包,設定開機啟動

    1、如何在eclipse中將spring boot專案打成jar包 1.右擊專案,選擇Run As - Maven clean 2.右擊專案,選擇Run As - Maven install 3.成功後 會在專案的target資料夾下生成jar包 2、直接雙擊執行cm

    spring boot 專案打包,配置構建外掛

    Spring Boot:jar中沒有主清單屬性 使用Spring Boot微服務搭建框架,在eclipse和Idea下能正常執行,但是在打成jar包部署或者直接使用java -jar命令的時候,提示了xxxxxx.jar中沒有主清單屬性: D:\hu-git\spr