使用Docker桌面開發環境功能開發SpringBoot - itnext

banq發表於2021-08-23

本文是Docker、VS Code、Docker Compose 和 Remote-Containers 外掛的良好組合的教程。
最近 docker 推出了一個名為 Dev Environments 的新功能,這是一個預覽功能,但對我來說非常有趣。這個新功能是 Docker、docker-compose 和 VS Code(帶有遠端容器外掛)的組合。
透過使用此功能,您可以輕鬆地從docker 卷(或您的本地目錄)內的專案 git 儲存庫構建快速開發環境,然後連線到使用 VS Code(遠端容器外掛)附加到該卷的建立的 docker 容器並開始編碼和執行該專案。您甚至可以將現有的 Docker 開發環境映像上傳到 Docker Hub 以與他人共享。
如果您只是想快速瀏覽一個專案或幫助在分支上工作的同事,則無需透過安裝 SDK、編譯器和其他開發工具來弄亂您的系統。
Docker DesktopDev Environments支援兩種型別的專案:
  • 單容器開發環境
  • 基於組合的開發環境

在本文中,我們將為Spring Boot 團隊官方 REST API 示例專案建立一個docker Dev environments演示。
 

準備您的機器以建立您的第一個 Docker 開發環境

  1. 首先,你需要安裝Docker DesktopVS Code,然後你需要在 VS Code 中安裝Remote-Containers 外掛
  2. 接下來,執行 Docker 桌面並透過單擊Whale iconmacOS 選單欄(或 Windows 系統托盤)中的進入儀表板,然後單擊Dashboard子選單。
  3. 最後,您應該單擊Dev Environemnts位於左窗格中的 並檢視您的Docker Dev Environments.

 

如何建立 Docker 開發環境?
在 Docker Desktop Dashboard 的 Dev Environment 窗格中,按 Create New Environment 按鈕,您將有 3 個選擇來建立新的 Dev Environment:

  • 遠端 Git 儲存庫:從 Docker 卷內的遠端 git 儲存庫(可能是該儲存庫的一個分支)克隆專案程式碼,使用建立的卷建立一個 docker 容器並開啟 VS 程式碼,然後使用遠端容器外掛
  • 本地資料夾:與上一個類似,但您的原始碼位於已建立的 docker 容器內的本地目錄中。您的原始碼將在 docker 容器和您的本地目錄之間同步,因此與之前的方法相比,它可能會有點慢。
  • 現有開發環境:您可以透過將現有開發環境釋出為 docker 映像來重用它們,然後透過這種方法重用它們。

 

為 Spring Boot 專案建立 Docker 開發環境
按 Create New Environment 按鈕,在第一個選項卡(Remote Git Repository)中,輸入Spring Boot 團隊提供的官方 REST API 示例專案的 URL :https://github.com/spring-guides/gs-rest-service
按下Create按鈕後,開始建立您的第一個開發環境的過程。Docker 開發環境執行以下步驟來建立您的第一個開發環境:

  • 根據您專案的程式語言和技術拉取一個 docker 映象,在這種情況下,docker pulldocker/dev-environments-java:stable-1並基於它建立一個容器和所需的卷。
  • 將給定 git 儲存庫中的原始碼克隆到這些建立的卷之一中。
  • 最終 docker 桌面將為您開啟一個 VS 程式碼視窗,該視窗使用Remote-Containers 外掛連線到建立的 docker 容器。

 

在開發環境中開發和執行專案
如果您只想執行此示例 REST API,則無需在容器中的 VS Code 或 JDK 中安裝任何外掛。Dev Environment 建立的 Docker 容器有 JDK 和SDKMAN!,SDKMAN的存在!如果您想安裝其他 SDK 和工具(例如 Maven、Scala 或 Kotlin),則非常有用。
因此,您只需要進入complete專案中的目錄並從 VS Code 終端執行此命令:

cd complete
./mvnw spring-boot:run

對於 VS Code 中的 Java 和 Spring Boot 開發,您有兩個選擇:

於 VS Code 和Remote-Containers 外掛的有趣之處在於,當你連線到這個容器時,安裝的外掛才可用。
現在您可以rest-service-complete使用 Spring Boot Dashboard執行(或除錯)專案,只需單擊執行(或除錯)按鈕(也許您需要轉到終端並按下Ctrl + C以停止先前執行的例項)。
 

總結 
像所有工具和技術一樣,Docker Desktop 中引入的這個新功能也有一些優點和缺點,但總的來說,我喜歡這個功能,作為下面列表中的最終結論,我試圖提到它的優點和缺點Docker 開發環境功能。
優勢:

  • 將開發環境與主機作業系統完全隔離
  • 良好的效能
  • 在 VS Code 中為每個專案安裝所需的外掛
  • 可重現的開發環境以實現更好的團隊合作
  • 減少向團隊新增新開發人員的入職時間

缺點:
  • 尚不支援 Intellij Idea
  • 如果在開發過程中,Dev 環境容器崩潰,那麼您的程式碼將丟失!
  • 免費計劃中不提供共享開發環境



 

相關文章