容器中的 Node.js
在本指南中,您將學習如何:
- 為 Express Node.js 服務容器建立
Dockerfile檔案 - 建置、執行並驗證服務功能
- 對容器內執行的服務進行偵錯
先決條件
建立 Express Node.js 應用程式
-
為專案建立一個資料夾。
-
在專案資料夾中開啟開發命令提示字元並建立專案
npx express-generator npm install
將 Docker 檔案加入專案
-
在 VS Code 中開啟該專案資料夾。
-
開啟命令面板 (⇧⌘P (Windows, Linux Ctrl+Shift+P)) 並使用 Containers: Add Docker Files to Workspace... 命令

-
當提示選擇應用程式平台時,請選擇 Node.js。
-
選擇預設的 package.json 檔案。
-
當提示輸入應用程式連接埠時,輸入
3000。 -
當提示是否包含 Docker Compose 檔案時,請選擇 Yes 或 No。Compose 通常用於同時執行多個容器的情況。
該擴充功能會建立 Dockerfile 和 .dockerignore 檔案。若您選擇包含 Docker Compose 檔案,則也會產生 docker-compose.yml 和 docker-compose.debug.yml。最後,擴充功能會在 .vscode/tasks.json 中建立一組 VS Code 工作 (Tasks) 用於建置與執行容器(包含偵錯與發行設定),並在 .vscode/launch.json 中建立一個 啟動偵錯設定,用於在容器內對服務進行偵錯。
將環境變數加入映像檔
容器工具擴充功能透過使用 IntelliSense 提供自動完成與上下文協助,協助您撰寫 Dockerfile。若要體驗此功能,請按照下列步驟將環境變數加入服務映像檔:
-
開啟
Dockerfile檔案。 -
使用
ENV指令將環境變數加入服務容器映像檔。
請注意容器工具擴充功能如何列出所有可用的 Dockerfile 指令並描述其語法。
容器工具擴充功能使用
Dockerfile的base階段來建立服務容器映像檔的偵錯版本。將環境變數定義放在base階段中,即可讓此變數在容器映像檔的偵錯版本與發行版本中皆可使用。 -
儲存
Dockerfile檔案。
於本機執行服務
-
開啟終端機 (⌃` (Windows, Linux Ctrl+`))。
-
輸入
npm run start以啟動應用程式> express-app@0.0.0 start /Users/user/code/scratch/express-app > node ./bin/www -
開啟網頁瀏覽器並前往 https://:3000。您應該會看到類似下方的頁面

-
測試完成後,在終端機中輸入 Ctrl+C。
建置服務映像檔
-
開啟命令面板 (⇧⌘P (Windows, Linux Ctrl+Shift+P)) 並選擇 Container Images: Build Image... 命令。
-
開啟容器總管 (Container Explorer) 並確認新映像檔已顯示在 Images 檢視中

執行服務容器
-
在上一節中建置的映像檔上按右鍵,並選擇 Run 或 Run Interactive。容器應該會啟動,且您應該能在 Containers 檢視中看到它

-
開啟網頁瀏覽器並前往 https://:3000。您應該會看到類似下方的頁面

-
測試完成後,在 Containers 檢視中對該容器按右鍵並選擇 Stop。
於服務容器中進行偵錯
當容器工具擴充功能將檔案加入應用程式時,它也會在 .vscode/launch.json 中加入 VS Code 偵錯器設定,用於在容器內執行時對服務進行偵錯。擴充功能會偵測服務所使用的協定與連接埠,並將瀏覽器導向該服務。
-
在
routes/index.js中,為'/'路由的get()處理常式設定中斷點。 -
確保已選取 Containers: Node.js Launch 偵錯器設定。

-
開始偵錯(使用 F5 鍵)。
- 建置服務的映像檔。
- 執行服務的容器。
- 瀏覽器會開啟並連接至對應到服務容器的(隨機)連接埠。
- 偵錯器會在
index.js的中斷點處停止。
請注意,由於偵錯器是在應用程式啟動「之後」才附加,因此第一次執行時可能會錯過中斷點;您可能需要重新整理瀏覽器,才能在第二次嘗試時看到偵錯器中斷。
您可以透過設定
tasks.json中node物件下的docker-run: debug工作的 inspectMode 屬性為break,來設定應用程式在開始執行前等待偵錯器附加。
檢視應用程式日誌
您可以使用容器上的 View Logs 命令在 VS Code 中檢視日誌
-
前往容器總管。
-
在 Containers 檢視中,對您的容器按右鍵並選擇 View Logs。

-
輸出內容將會顯示在終端機中。
後續步驟
完成!現在容器已準備就緒,您可能想要: