DevNote: Spring Boot with Docker

finally java banana have to use “Spring Boot”

โน้วววววววววววววววววววววววววววววววววววววววว!!!

พอดีไปรับ consult ทำให้ต้องยุ่งกับ สปริงบู๊ด ครับ

วิธีการ set up Docker กับ Spring Boot ด้วย gradle เป็น build tool มี step ดังนี้ครับ

Prerequisite: ลง Docker, gradle และ Jdk ให้เรียบร้อย

Refer: https://spring.io/guides/gs/spring-boot-docker/

1) clone template ของ Project มาก่อน

$> git clone https://github.com/spring-guides/gs-spring-boot-docker.git

2) เข้าไปที่ folder initial จาก $Project_Home

$> cd into gs-spring-boot-docker/initial

3) แก้ไขไฟล์ src/main/java/hello/Application.java ดังนี้

package hello;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@SpringBootApplication
@RestController
public class Application {

    @RequestMapping("/")
    public String home() {
        return "Hello Docker World";
    }

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }

}

4) แก้ไขไฟล์ src/main/docker/Dockerfile ดังนี้

FROM frolvlad/alpine-oraclejdk8:slim
VOLUME /tmp
ADD gs-spring-boot-docker-0.1.0.jar app.jar
RUN sh -c 'touch /app.jar'
ENV JAVA_OPTS=""
ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ]

5) แก้ไฟล์ build.gradle โดยเพิ่มไปดังนี้

buildscript {
    // config เดิม
    dependencies {
        // config เดิม
        classpath('se.transmode.gradle:gradle-docker:1.2')
    }
}

group = 'springio'

// config เดิม
apply plugin: 'docker'

task buildDocker(type: Docker, dependsOn: build) {
  push = true
  applicationName = jar.baseName
  dockerfile = file('src/main/docker/Dockerfile')
  doFirst {
    copy {
      from jar
      into stageDir
    }
  }
}

สุดท้ายแล้วจะได้ไฟล์ build.gradle หน้าตาดังนี้

Screen Shot 2560-06-10 at 10.31.12 AM.png

6) run สำหรับ build jar package

$> gradle build && java -jar build/libs/gs-spring-boot-docker-0.1.0.jar

7) run คำสั่ง build

$> gradle build buildDocker

*** run แล้วมันจะพัง ต้องเปลี่ยน group เป็นชื่อ dockerhub ของเรา (ถ้าไม่มีก็สมัครที่ https://hub.docker.com ) อย่างของผมเปลี่ยนเป็น champillon ดังรูปด้านบน***

8) run docker

$> docker run -p 8080:8080 -t springio/gs-spring-boot-docker

Screen Shot 2560-06-10 at 10.35.17 AM.png

9) ลองเข้าไปเล่นดู

Screen Shot 2560-06-10 at 10.36.02 AM.png

About champillon

Enterprise Opensource Implementer
This entry was posted in Uncategorized. Bookmark the permalink.

Leave a comment