使用 Podman Desktop 容器化 Spring Boot 應用程式
1. 概述
在本教程中,我們將學習如何使用 Podman Desktop 容器化 Spring Boot 應用程式。 Podman 是一個容器化工具,它允許我們在不需要守護程序的情況下管理容器。
Podman Desktop 是一個具有圖形使用者介面的桌面應用程序,用於使用 Podman 管理容器。
為了示範其用法,我們將建立一個簡單的 Spring Boot 應用程式、建立容器映像並使用 Podman Desktop 運行容器。
2.安裝Podman桌面
我們需要在本機上安裝 Podman Desktop才能開始。它適用於 Windows、macOS 和 Linux 作業系統。下載安裝程式後,我們可以按照安裝說明在我們的電腦上設定 Podman Desktop。
以下是設定 Podman Desktop 的幾個重要步驟:
- Podman 應該安裝在機器上。如果未安裝,Podman Desktop 會提示並為我們安裝。
- Podman 準備好後,系統會提示我們啟動 Podman 機器。我們可以選擇預設設置,也可以根據需要進行自訂。這是我們運行容器之前所必需的。
- 此外,對於 Windows,我們需要啟用/安裝 WSL2(適用於 Linux 的 Windows 子系統),然後才能執行 Podman。
在安裝過程結束時,我們應該有一台正在運行的 Podman 機器,可以使用 Podman 桌面應用程式進行管理。我們可以在Dashboard
部分驗證這一點:
3. 建立 Spring Boot 應用程式
讓我們建立一個小型 Spring Boot 應用程式。該應用程式將有一個 REST 控制器,它返回“Hello, World!”
當我們訪問/hello
端點時的消息。
我們將使用 Maven 建置專案並建立jar
檔。然後,我們將建立一個Containerfile
(在 Docker 上下文中也稱為 Dockerfile)。我們將使用此檔案透過 Podman Desktop 為我們的應用程式建立容器映像。
3.1.設定項目
首先,我們將Spring Boot Starter Web依賴項新增到我們的專案中:
`
`
此相依性提供了建立 Spring Boot Web 應用程式所需的程式庫。
3.2.控制器
接下來,讓我們建立 REST 控制器:
`@RestController
public class HelloWorldController {
@GetMapping("/hello")
public String helloWorld() {
return "Hello, World!";
}
}`
這裡,我們使用@RestController
註解將該類別標記為控制器,並使用@GetMapping
註解將該方法對應到/hello
端點。當我們訪問此端點時,它會返回“Hello, World!”
訊息.
3.3.建設項目
我們可以透過在終端機中執行以下命令來使用 Maven 建置專案:
mvn clean package
此命令編譯項目,運行測試,並在target
目錄中建立一個jar
檔。
4. Containerfile
現在我們已經準備好 Spring Boot 應用程序,讓我們建立一個Containerfile
來為我們的應用程式建立映像。我們將在專案的根目錄中建立此檔案:
`FROM openjdk:17-alpine
WORKDIR /app
COPY target/spring-boot-podman-desktop-1.0-SNAPSHOT.jar app.jar
EXPOSE 8080
CMD ["java", "-jar", "app.jar"]`
在這個文件中:
- 首先,我們使用
openjdk:17-alpine
鏡像作為基礎鏡像。 - 接下來,我們將工作目錄設定為
/app
。 - 然後,我們將Maven產生的jar檔複製到
/app
目錄下。 - 我們公開連接埠
8080
,這是 Spring Boot 應用程式的預設連接埠。 - 最後,我們使用
CMD
指令指定在容器啟動時使用java -jar
指令執行 jar 檔案。
5. 使用 Podman Desktop 建立鏡像
設定Containerfile
後,讓我們使用 Podman 桌面應用程式來建立映像。
首先,我們將轉到Images
部分並點擊Build
按鈕:
接下來,我們將填寫圖像的詳細資訊:
- 設定圖像的名稱
- 選擇
Containerfile
位置 - 使用專案目錄作為上下文目錄
- 我們也可以選擇圖像的平台。我們將使用預設值。
以下是參數和值的範例:
填寫詳細資料後,我們可以點擊Build
按鈕來建立鏡像。建置完成後我們可以發現 Images
部分中的影像。
6. 運行容器
現在我們已經準備好了映像,我們可以使用該映像運行容器。我們可以透過點擊Images
部分中hello-world-demo
映像旁的Run
按鈕來完成此操作:
6.1.啟動容器
接下來,我們將填寫容器的詳細資料。我們在Containerfile
中設定的屬性將會預先填充,我們可以根據需要自訂它們:
此時,連接埠對映和指令均已填寫。如果需要,我們可以設定其他屬性,例如環境變數、磁碟區等。
填寫詳細資料後,我們可以點擊Start Container
按鈕來啟動容器。這將打開Container Details
部分並顯示容器日誌:
6.2.測試應用程式
容器啟動後,我們可以透過開啟瀏覽器並導航到http://localhost:8080/hello
來存取應用程式。我們會看到“Hello, World!”
頁面上的消息:
6.3.停止容器
要停止容器,我們點擊上面Container Details
部分中的Stop
按鈕。
或者,我們可以轉到容器列表並點擊容器的Stop
按鈕:
七、結論
在本文中,我們學習如何使用 Podman Desktop 對 Spring Boot 應用程式進行容器化。我們創建了一個帶有 API 端點的簡單 Spring Boot 應用程序,並為其創建了一個Containerfile
。然後,我們使用 Podman Desktop 應用程式建立了一個映像,並使用該映像運行了一個容器。最後,我們測試了容器啟動後我們的端點是否正常運作。
與往常一樣,程式碼範例可在 GitHub 上取得。