是 Ray 不是 Array

整理這些技術筆記真的很花時間,如果你願意 關閉 Adblock 支持我,我會把這份感謝轉換成更多「踩坑轉避坑」的內容給你!ヽ(・∀・)ノ

Advertisement
2026-01-22 AI

用 Dev Containers 打造 AI 自動化開發的安全隔離環境

用 Dev Containers 打造 AI 自動化開發的安全隔離環境

前言

相信許多人對於自動化開發非常感興趣,甚至希望可以的話,全部都給 AI Agent 來完成需求,但是這件事情牽扯到許多層面的考量,像是安全性、環境一致性、依賴管理等等,更不用說發生過好幾次案例 Auto AI Agent 在沒有隔離環境的情況下,直接在本機上執行指令,導致系統損毀或是資料遺失的慘劇,所以就來記錄一下該如何使用 Dev Containers 來建立一個隔離的開發環境,讓 AI Agent 可以在這個受控的環境中進行開發工作。

Dev Containers 簡介

Dev Containers 是一種基於容器技術的開發環境隔離方案,也就是所謂的 Docker Container,除此之外 ,Dev Containers 還提供了一些額外的功能,像是可以透過 Visual Studio Code 來直接連接到容器中進行開發工作,並且可以透過設定檔來定義容器的環境設定、依賴管理等等。

那為什麼要特別講到 Dev Containers 呢?畢竟 AI Agent 越來越發達的狀況下,我們會盡可能讓 AI Agent 來完成工作,但是因為 AI Agent 的行為是不可預測的,儘管我們會透過 Prompt Engineering 來盡可能的引導 AI Agent 進行正確的操作,但是仍然有可能會發生一些意外的狀況,像是 AI Agent 可能會執行一些危險的指令,或是安裝一些不安全的套件,這些都可能會對系統造成損害。

例如前陣子最知名的大概莫過於 Google Antigravity 事件 ,當時 Google Antigravity 把開發者的 D 槽全面清空,這種 AI Agent 案例層出不窮,只要你不給它一個隔離的環境,它就有可能會對你的系統造成損害。

更不用說未來開發者肯定會同時需要操作多個 AI Agent 來完成不同的任務,這些 AI Agent 之間可能會有衝突,像是依賴版本不相容、資源競爭等等問題,所以使用 Dev Containers 來建立隔離的開發環境是非常重要的。

Dev Containers 的隔離範圍

這邊要特別說明一下 Dev Containers 的 「隔離」 是指什麼:

  • 檔案系統隔離:容器內只能存取被掛載的專案資料夾,無法任意存取系統的其他檔案(例如你的 D 槽、桌面等)
  • 執行環境隔離:容器內安裝的套件、全域設定不會污染系統
  • 依賴隔離:不同專案可以使用不同版本的 Node.js、Python 等工具,互不干擾

但要注意的是,網路預設是通的

什麼意思呢?有些人會誤以為 Dev Containers 是封閉在一個環境內,完全無法存取外部網路,但事實上並非如此。

Dev Containers 預設使用 Docker 的 bridge 網路模式,所以容器內可以正常存取外部網路,像是 git push 到 GitHub、npm install 下載套件等操作都可以正常運作。

建立 Dev Containers 環境

所以我們該怎麼用 Dev Containers 來建立一個隔離的開發環境呢?這邊我盡可能選擇比較單純的環境且簡單的方式來示範,也就是使用 Visual Studio Code 來建立 Dev Containers 環境。

首先請你到 Visual Studio Code 的 Extensions 市集,搜尋並安裝 Dev Containers 擴充套件。

Dev Containers

接著請你輸入以下指令,建立一個新的資料夾,並進入該資料夾:

1
2
mkdir dev-containers-example-node
cd dev-containers-example-node

輸入完畢後,這個專案會是一個空的資料夾,接著請你在 Visual Studio Code 中開啟該資料夾,然後按下 F1 鍵,輸入 Dev Containers: Add Dev Container Configuration Files,並選擇該選項。

開發人員容器:新增開發人員容器設定檔

接著應該會跳出 「新增開發人員容器設定檔」 的視窗,請你選擇一個適合你的開發環境的設定檔:

  • 將設定新增至工作區
  • 將設定新增至使用者資料夾

通常來講,我們要選擇 「將設定新增至工作區」 ,這樣設定檔會被放在專案資料夾中,方便專案成員共享。

新增開發人員容器設定檔

接著就會進入 「選取容器設定範本或輸入自訂範本識別碼」 ,這邊其實有點文謅謅,簡單來講就是請你選擇一個適合你的開發環境的範本,這邊我們選擇「Node.js」範本,因為我們要建立一個 Node.js 的開發環境,所以這邊我選擇 「Node.js」

選取容器設定範本

版本號的部分,請你選擇你需要的 Node.js 版本,這邊我選擇 「20(預設)」 即可。

選取 Node.js 版本

接著會有一些 「選取其他要安裝的功能」 ,這邊你可以依照需求勾選,但我這邊就直接跳過不選。

選取其他要安裝的功能

然後接下來你的專案目錄應該會出現一個 .devcontainer 的資料夾,裡面會有 devcontainer.json 設定檔,有些範本還會包含 Dockerfile,這些檔案就是用來定義 Dev Containers 環境的設定檔。

Dev Containers 設定檔

啟用 Dev Containers

接下來就是啟用 Dev Containers,但在此之前請先確保你的電腦已經安裝 Docker Desktop。如果還沒安裝的話,可以按下 F1 鍵,輸入 Dev Containers: Install Docker,VS Code 會引導你完成安裝流程。

安裝 Docker

如果確定電腦環境有安裝 Docker 的話,我們就可以改按下 F1 鍵,輸入 Dev Containers: Reopen in Container,這個指令會幫你重新開啟 Visual Studio Code 並且連接到 Dev Containers 中(這個重新開啟的過程可能會花一點時間)。

重新在容器中開啟

接著你就會進入到一個全新的開發環境,底下終端機也會變成類似這樣的呈現:

1
node@252a03b24a0b:/workspaces/rayxu/GitHub/dev-containers-example-node$ 

這就代表著你已經成功進入到 Dev Containers 的隔離開發環境中了。

開發完畢該怎麼辦?

當你在 Dev Containers 中完成開發工作後,你可以直接關閉 Visual Studio Code,這樣 Dev Containers 會自動停止運行,並且不會對系統造成任何影響。

那你可能會擔心 「我在容器裡面寫的程式碼會不會消失?」,答案是不會的。

因為 Dev Containers 預設會使用 Volume Mount 的方式將你的專案資料夾掛載到容器中,所以你在容器內對專案檔案的任何修改,都會即時同步到系統上的專案資料夾。

所以如果你要將開發進度保存下來,其實跟平常一樣使用 Git 即可:

1
2
3
git add .
git commit -m "feat: 新增功能"
git push

這些 Git 指令無論是在容器內執行,還是關閉容器後在系統上執行,效果都是一樣的。

你可能會擔心 「我在容器內要怎麼認證 GitHub?需要重新設定嗎?」,答案是不用的。

Dev Containers 擴充套件會自動幫你處理認證問題:

  • SSH Key 轉發:自動轉發 SSH agent,所以你原本設定好的 SSH key 在容器內也能直接使用
  • Git Credential 轉發:HTTPS 認證也會自動處理
  • Git 設定轉發user.nameuser.email 等全域設定也會自動帶進容器

所以只要你在系統設定好 GitHub 認證,進入 Dev Containers 後就能直接 git push,完全不需要額外設定。

當你下次要繼續開發時,只需要再次使用 F1Dev Containers: Reopen in Container,就可以回到相同的開發環境繼續工作了。

其他團隊成員如何加入開發?

當你把專案推送到 GitHub 後,其他團隊成員要如何加入開發呢?這邊有兩種方式:

方式一:先 Clone 再開啟容器

  1. 使用 git clone 將專案 clone 到本地
  2. 使用 Visual Studio Code 開啟專案資料夾
  3. VS Code 會偵測到 .devcontainer 資料夾,右下角會跳出提示詢問是否要在容器中重新開啟
  4. 點擊「Reopen in Container」就會自動建立並進入容器環境

Reopen in Container 提示

方式二:直接 Clone 到容器 Volume 中

另一種方式是使用 F1Dev Containers: Clone Repository in Container Volume,這個指令會直接把專案 clone 到 Docker volume 中,而不是檔案系統。

這種方式的優點是檔案讀寫效能更好,特別適合 macOS 和 Windows 用戶,因為 Docker 在這兩個系統上的檔案系統掛載效能相對較差。缺點是專案檔案不會出現在檔案系統中,只能透過 VS Code 存取。

結語

隨著 AI Agent 越來越強大,自動化開發已經不再是遙不可及的事情,但同時我們也需要更加重視開發環境的安全性。透過 Dev Containers,我們可以讓 AI Agent 在一個受控的隔離環境中工作,既能享受自動化帶來的便利,又不用擔心它會對本機系統造成損害。

如果你也想嘗試讓 AI Agent 幫你寫程式,強烈建議先把 Dev Containers 設定好,這樣才能安心地讓 AI 幫你完成工作。

整理這些技術筆記真的很花時間,如果你願意 關閉 Adblock 支持我,我會把這份感謝轉換成更多「踩坑轉避坑」的內容給你!ヽ(・∀・)ノ

Advertisement

你的支持會直接轉換成更多技術筆記

如果我的筆記讓你少踩一個坑、節省 Debug 的時間,
也許你可以請我喝杯咖啡,讓我繼續當個不是 Array 的 Ray ☕

buymeacoffee | line | portaly

Terminal

分享這篇文章

留言

© 2026 Ray. All rights reserved.

Powered by Ray Theme