Featured image of post Docker容器搭建的本機開發環境介紹Featured image of post Docker容器搭建的本機開發環境介紹

Docker容器搭建的本機開發環境介紹

每次嘗試新的程式語言或框架時,您是否都會直接在主機作業系統上安裝執行時間(Node.js、Python、Ruby 等)和資料庫(PostgreSQL、MySQL)?如果使用 Docker 容器,擔心版本衝突、卸載時產生垃圾檔案的「作業系統環境污染」將成為過去。我們以實踐的形式組織了建構實用的本地開發環境的步驟。

為什麼不能直接安裝到主機作業系統?

諸如專案 A 需要 Python 3.10、專案 B 需要 Python 3.12 之類的版本衝突很常見。 Docker 可讓您將應用程式執行環境和中間件隔離為獨立的一次性容器。即使您獲得了一台新電腦,您也可以透過複製儲存庫並點擊單一命令來立即重新建立完美的開發環境。

###實踐:Web應用的最低配置+DB compose.yaml 以下是連結 Node.js 環境和 PostgreSQL 資料庫的標準 compose.yaml 範例。

services:
  app:
    build: .
    ports:
      - "3000:3000"
    volumes:
      - .:/app
      - /app/node_modules
    environment:
      - DATABASE_URL=postgres://devuser:devpass@db:5432/devdb
    depends_on:
      - db

  db:
    image: postgres:16-alpine
    restart: always
    environment:
      POSTGRES_USER: devuser
      POSTGRES_PASSWORD: devpass
      POSTGRES_DB: devdb
    volumes:
      - db-data:/var/lib/postgresql/data
    ports:
      - "5432:5432"

volumes:
  db-data:

順利開發的兩大秘訣

  1. 熱重載和磁碟區掛載:將目前目錄(.:/app)綁定掛載到容器中,以便立即反映主機端原始碼的變更。但是,關鍵是使用匿名磁碟區保護容器內的「node_modules」和虛擬環境,以便它們不會被主機端的空資料夾覆蓋。
  2. 使用 VS Code Dev Containers:透過結合編輯器擴展“Dev Containers”,您可以在容器中啟動 VS Code 本身,並無縫使用容器端補全引擎和 linter,與主機具有相同的操作感覺。

獲得一個乾淨、可複製的開發平台並專注於編寫程式碼。