首頁 > 軟體

在 Docker 中執行 SpringBoot 應用

2020-06-16 16:33:30

建立 SpringBoot 專案

用 Idea 建立一個 SpringBoot 專案,編寫一個介面:

package cloud.dockerdemo

import org.springframework.web.bind.annotation.RequestMapping
import org.springframework.web.bind.annotation.RequestMethod
import org.springframework.web.bind.annotation.RestController

@RestController
class HelloDocker {

    @RequestMapping(value = ["/"], method = [RequestMethod.GET])
    fun hello(): String {
        return "<h1>Hello, Docker!</h1>"
    }
}

這裡用的 Kotlin 語言,用 Java 的話,註解是一樣的。

下載 OpenJDK 映象

只用下載 jre 就行,只有 57MB。

docker pull openjdk:8u212-jre-alpine

在專案根目錄下建立 Dockerfile

FROM openjdk:8u212-jre-alpine

WORKDIR /home/dev

COPY ./target/*.jar /home/dev/app.jar

CMD ["java", "-jar", "app.jar"]
  • target 目錄就是 maven 打包輸出 jar 的目錄,把打包的 jar 檔案拷貝到容器中。
  • CMD 就是容器啟動時執行的命令,即 java -jar app.jar 。

注意這裡執行 jar 沒有使用 & 符號,因為在 Docker 容器中執行的程式必須是前台的,如果用後台方式執行,命令執行完容器就直接停止了。

構建映象

在終端中把工作目錄切換到專案目錄,執行:

docker build -t <映象名稱> .

最後的 . 不能掉,它指定了上下文目錄為當前目錄。

執行容器

docker run --name <容器名稱> -d -p 8080:8080 <上一步構建的映象名稱>

執行後,可以使用 docker ps 命令檢視是否成功執行。

存取 localhost:8080 存取介面:


IT145.com E-mail:sddin#qq.com