iT邦幫忙

2023 iThome 鐵人賽

DAY 11
0
Mobile Development

Spring Boot+Android 30天 實戰開發 系列 第 11

【Day - 11】使用 Docker Compose 管理團隊開發環境 (上)

  • 分享至 

  • xImage
  •  

1. 引言

在現代軟體開發中,構建和管理開發環境是一個至關重要的任務。特別是在團隊開發中,確保每個開發者都能夠獲得一致的開發環境是關鍵。然而,隨著應用程式的複雜性增加,開發環境的設置變得更加複雜,很容易導致不同開發者之間的配置不一致。

為了解決這個問題,Docker Compose 成為了一個強大的工具。它允許開發者將應用程式的各個組件,如數據庫、消息隊列、Web 伺服器等,打包到容器中,並使用一個簡單的配置文件進行管理。這使得在不同開發者之間輕鬆共享和維護開發環境成為可能。

本文將介紹 Docker Compose 在團隊開發中的重要性和便利性。我們將深入探討如何使用 Docker Compose 構建開發環境,並以 PostgreSQL 和 pgAdmin 作為示例。最後,我們將演示如何將 Docker Compose 與 Spring Boot 項目集成,從而實現更加高效的開發流程。

無論你是開發團隊的一員還是個人開發者,理解並掌握 Docker Compose 都將對你的開發工作產生積極影響。讓我們開始探討 Docker Compose 如何幫助我們更好地管理開發環境吧。

2. 使用 Docker Compose 構建開發環境

在本節中,我們將深入探討如何使用 Docker Compose 來構建開發環境,以及為什麼這對團隊開發如此重要。我們將以 PostgreSQL 和 pgAdmin 作為示例應用程式,演示如何使用 Docker Compose 管理這兩個容器化的應用程式。此外,我們還會提供 Docker Compose 配置文件的示例,以幫助你入門。

2.1 介紹 Docker Compose

Docker Compose 是 Docker 公司推出的一款用於定義和運行多容器 Docker 應用程式的工具。它允許你使用一個單獨的 YAML 文件來配置應用程序的服務、網絡和卷,然後通過一條命令啟動整個應用程序。

  • 為什麼使用 Docker Compose?以下是一些主要優點:
    • 一鍵部署:使用 Docker Compose,你可以在任何支持 Docker 的環境中輕鬆部署應用程式,而不必擔心環境配置問題。
    • 多容器管理:當應用程式由多個容器組成時,Docker Compose 讓你能夠將它們組合在一起,方便管理和擴展。
    • 環境一致性:無論在開發、測試還是生產環境中,Docker Compose 都可以確保容器的一致性,從而避免了“在我的機器上能正常工作”的問題。
    • 易於維護:將應用程式的配置存儲在一個簡單的 YAML 文件中,使得維護和分享配置變得非常容易。

2.2 使用 Docker Compose 架設 PostgreSQL 和 pgAdmin

讓我們通過一個具體的示例來演示如何使用 Docker Compose 構建開發環境。在這個示例中,我們將架設一個 PostgreSQL 數據庫和一個 pgAdmin 管理界面。
請確保您的電腦已經安裝了Docker!

步驟 1:創建 Docker Compose 配置文件

首先,我們需要創建一個名為docker-compose.yml的 Docker Compose 配置文件。這個文件將包含我們應用程式的所有服務和配置信息。

以下是一個示例docker-compose.yml文件,用於創建 PostgreSQL 和 pgAdmin 服務:

version: '3'
services:
  db: # 這個db表示的PostgreSQL這個資料庫服務的別稱,可任意更改為你要的
    image: postgres:15.2-alpine
    restart: always # 表示如果服務啟動不成功會一直嘗試
    environment:
      POSTGRES_USER: ianliu     # 連上資料庫所指定的帳號
      POSTGRES_PASSWORD: ianliu # 連上資料庫所指定的密碼
      POSTGRES_DB: ironman2023 #初始化要創建的資料庫
    ports:
      - "5436:5432" # 表示這個服務要將容器內的`5432`埠映射到本地主機的`5436`埠
    networks:
      - mynetwork
  dbGUI: # pgAdmin是一個可將PostgreSQL資料庫可視化的一個網頁服務
    image: dpage/pgadmin4
    environment:
      PGADMIN_DEFAULT_EMAIL: ianliu@example.com
      PGADMIN_DEFAULT_PASSWORD: ianliu
    depends_on:
      - db  # 這表示在啟動這個服務之前要先運行postgresql
networks:
  mynetwork:

這個配置文件定義了兩個服務:postgres 和 pgadmin。postgres 服務使用了官方的 PostgreSQL 映像,設置了數據庫的使用者名稱、密碼和數據庫名稱。pgadmin 服務使用了 pgAdmin 4 映像,設置了管理員電子郵件和密碼。

此外,我們還指定了服務的端口映射,以便我們可以通過主機訪問這些服務。postgres 服務將 PostgreSQL 數據庫的端口映射到主機的 5436 端口,而 pgadmin 服務將 pgAdmin 管理界面的端口映射到主機的 8080 端口。

最後,我們在配置文件中定義了一個自定義的網路 mynetwork,以便這兩個服務可以相互通信。

步驟 2:啟動容器

一旦我們有了 docker-compose.yml 文件,就可以使用以下命令啟動容器。
注意!,運行以下命令時請在該文件的同一個位置下執行:

docker-compose up -d

根據配置文件中的定義,將創建並啟動 postgres 和 pgadmin 容器。參數 -d 表示在後台運行容器。

透過這個指令查看是否運行成功,docker container ps
圖片無法顯示

步驟 3:訪問 pgAdmin 界面

現在,你可以通過瀏覽器訪問 pgAdmin 管理界面,地址為 http://localhost:8080(如果你的 Docker 主機不是本地,請使用相應的主機地址)。使用在配置文件中設置的管理員電子郵件和密碼進行登錄。
圖片無法顯示

步驟 4:連接到PostgreSQL

  1. 登入pgAdmin4後,點擊左側選單的"Servers"->"Register"->"Server..."
    圖片無法顯示
  2. 設置你的資料庫服務名稱:在"General"選單下,設置"Name"屬性
    圖片無法顯示
  3. 設置你要連接的資料庫:在"Connection"選單下,設置下圖紅色框起來的部分。建議看著步驟一的配置輸入。
    圖片無法顯示
    • Host name/address:填寫步驟一 docker-coompose.yml 中PostgreSQL服務的別稱。
    • Portdocker-compose.yml中PostgreSQL服務的port,也就是5432
    • Maintenance database、Username、Password:則填寫在docker-compose.yml中指定創建的資料庫名稱和使用者帳號/密碼。
  4. 成功連線的畫面

2.3 小結

本節介紹了 Docker Compose 的基本概念以及如何使用它來構建開發環境。我們通過一個示例演示了如何創建一個包含 PostgreSQL 和 pgAdmin 的多容器應用程式,並提供了相應的 Docker Compose 配置文件。通過使用 Docker Compose,你可以輕鬆管理多個容器化的應用程式組件,確保開發環境的一致性,從而提高團隊開發的效率。在下一節中,我們將看看如何將這個開發環境與 Spring Boot 項目集成,以便更輕鬆地開發和測試我們的應用程式。


上一篇
【Day - 10】更簡潔的數據驗證 - Spring Validation (下)
下一篇
【Day - 12】使用 Docker Compose 管理團隊開發環境 (下)
系列文
Spring Boot+Android 30天 實戰開發 30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言