容器中的 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 任務,並在 .vscode/launch.json 中建立用於在容器內除錯服務的 launch 除錯配置。
向映象新增環境變數
Container Tools 擴充套件透過使用 IntelliSense 提供自動完成和上下文幫助,幫助您編寫 Dockerfile。要檢視此功能,請按照以下步驟為服務映象新增環境變數
-
開啟
Dockerfile檔案。 -
使用
ENV指令向服務容器映象新增環境變數。
請注意 Container Tools 擴充套件如何列出所有可用的 Dockerfile 指令和描述其語法。
Container Tools 擴充套件使用
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 -
開啟 Web 瀏覽器並導航至 https://:3000。您應該會看到類似於以下的頁面

-
測試完成後,在終端中鍵入 Ctrl+C。
構建服務映象
-
開啟命令面板 (⇧⌘P (Windows, Linux Ctrl+Shift+P)) 並選擇 Container Images: Build Image... 命令。
-
開啟 Container Explorer 並驗證新映象是否在 Images 檢視中可見

執行服務容器
-
右鍵單擊上一節中構建的映象,然後選擇 Run 或 Run Interactive。容器應啟動,並且您應該能在 Containers 檢視中看到它

-
開啟 Web 瀏覽器並導航至 https://:3000。您應該會看到類似於以下的頁面

-
測試完成後,在 Containers 檢視中右鍵單擊容器並選擇 Stop。
在服務容器中進行除錯
當 Container Tools 擴充套件嚮應用程式新增檔案時,它還會向 .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 中檢視日誌
-
導航到 Container Explorer。
-
在 Containers 檢視中,右鍵單擊您的容器並選擇 View Logs。

-
輸出將顯示在終端中。
後續步驟
你已完成!現在你的容器已準備就緒,你可能想