2016-08-11

使用Docker建置Spring Boot微服務


脅持著微服務架構盛行,Spring Boot 似乎也開展起不小的火紅之路,再搭配 Docker LXC容器技術,應該算是個很厲害的組合。

[環境]
  • Ubuntu 16.04 LTS 64 bits
  • Docker version 1.10.3
  • Java 8
  • Gradle 2.10
[建置步驟]
  • 請自行安裝Ubuntu 16.04,過程略。
  • 由於Ubuntu 16.04預設只有apt,習慣用apt-get的人可以自行安裝apt-get
    • #sudo apt install apt-get
    • #sudo apt-get update
    • 安裝Gradle
      • #sudo apt-get install gradle
    • 安裝Docker
      • #sudo apt install docker.io
      • 安裝Git,並抓取放在Github上做好的gradle專案,看起來目錄如下圖
        • #sudo apt-get install git
        • #sudo git clone https://github.com/spring-guides/gs-spring-boot-docker.git
        • 為了避免我現在測試的 src 版本會跟撰寫這篇網誌有差異,我自己 fork 了一份在自己的 github 上:https://github.com/A-Ho/gs-spring-boot-docker

        • 由於下載的範例檔src/main/java/hello/Application.java只有單純的啟動SpringApplication,不方便測試,我們自行把 Spring MVC 的 REST Controller 部分代碼(用黃底高亮顯示)加上去,看起來會是像下面這樣。
        package hello;
        
        import org.springframework.boot.SpringApplication;
        import org.springframework.boot.autoconfigure.SpringBootApplication;
        import org.springframework.boot.bind.RelaxedPropertyResolver;
        import org.springframework.web.bind.annotation.RequestMapping;
        import org.springframework.web.bind.annotation.RestController;
        
        @SpringBootApplication
        @RestController
        public class Application {
        
         @RequestMapping("/")
         public String home() {
          return "Welcome to RISE CRADLE's world";
         }
        
         public static void main(String[] args) {
          SpringApplication.run(Application.class, args);
         }
        }
        
        

        • 回到gs-spring-boot-docker/initial目錄下,執行以下gradle指令,gradle就會幫我們把spring boot啟動於docker上。
          • #./gradlew build && java -jar build/libs/gs-spring-boot-docker-0.1.0.jar

        • 透過瀏覽器測試之,http://localhost:8080。







        沒有留言:

        張貼留言