容器中的 Node.js
在本指南中,您將學習如何:
- 為 Express Node.js 服務容器建立
Dockerfile
檔案 - 建置、執行並驗證服務的功能
- 偵錯在容器內執行的服務
先決條件
建立 Express Node.js 應用程式
-
為專案建立資料夾。
-
在專案資料夾中開啟開發命令提示字元並建立專案
npx express-generator npm install
將 Docker 檔案新增至專案
-
在 VS Code 中開啟專案資料夾。
-
開啟命令選擇區 (⇧⌘P (Windows、Linux Ctrl+Shift+P)) 並使用 Docker: 將 Docker 檔案新增至工作區... 命令
-
在提示應用程式平台時,選取 Node.js。
-
選擇預設的 package.json 檔案。
-
在提示應用程式連接埠時,輸入
3000
。 -
在提示是否包含 Docker Compose 檔案時,選取 是 或 否。Compose 通常在同時執行多個容器時使用。
擴充功能會建立 Dockerfile
和 .dockerignore
檔案。如果您選擇包含 Docker Compose 檔案,也會產生 docker-compose.yml
和 docker-compose.debug.yml
。最後,擴充功能會在 .vscode/tasks.json
中建立一組 VS Code 工作,用於建置和執行容器 (在偵錯和發行組態中),並在 .vscode/launch.json
中建立 啟動偵錯組態,用於偵錯容器內的服務。
將環境變數新增至映像
Docker 擴充功能可協助您撰寫 Dockerfile,方法是使用 IntelliSense 來提供自動完成和內容相關說明。若要查看此功能的實際運作,請依照下列步驟將環境變數新增至您的服務映像
-
開啟
Dockerfile
檔案。 -
使用
ENV
指令將環境變數新增至服務容器映像。請注意 Docker 擴充功能如何列出所有可用的 Dockerfile 指令並說明語法。
Docker 擴充功能使用
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://127.0.0.1:3000。您應該會看到類似以下的頁面
-
完成測試後,在終端機中輸入 Ctrl+C。
建置服務映像
-
開啟命令選擇區 (⇧⌘P (Windows、Linux Ctrl+Shift+P)) 並選取 Docker 映像: 建置映像... 命令。
-
開啟 Docker 瀏覽器並確認新的映像在映像樹狀結構中可見
執行服務容器
-
在上一節中建置的映像上按一下滑鼠右鍵,然後選取 執行 或 互動式執行。容器應該會啟動,而且您應該能夠在 Docker 容器樹狀結構中看到它
-
開啟網頁瀏覽器並導覽至 https://127.0.0.1:3000。您應該會看到類似以下的頁面
-
完成測試後,在容器樹狀結構中按一下滑鼠右鍵,然後選取 停止。
在服務容器中偵錯
當 Docker 擴充功能將檔案新增至應用程式時,它也會在 .vscode/launch.json
中新增 VS Code 偵錯工具組態,以便在容器內執行時偵錯服務。擴充功能會偵測服務使用的協定和連接埠,並將瀏覽器指向服務。
-
在
routes/index.js
中'/'
路徑的get()
處理常式中設定中斷點。 -
確定已選取 Docker Node.js 啟動 偵錯工具組態。
-
開始偵錯 (使用 F5 鍵)。
- 服務的 Docker 映像會建置。
- 服務的 Docker 容器會執行。
- 瀏覽器會開啟至對應至服務容器的 (隨機) 連接埠。
- 偵錯工具會在
index.js
中的中斷點停止。
請注意,由於偵錯工具在應用程式啟動之後才附加,因此第一次可能會錯過中斷點;您可能需要重新整理瀏覽器才能在第二次嘗試時看到偵錯工具中斷。
您可以將應用程式設定為在啟動執行之前等待偵錯工具附加,方法是在
tasks.json
中docker-run: debug
工作中的node
物件下,將 inspectMode 屬性設定為break
。
檢視應用程式記錄
您可以使用容器上的 檢視記錄 命令,在 VS Code 中檢視記錄
-
導覽至 Docker 瀏覽器。
-
在 容器 索引標籤中,在您的容器上按一下滑鼠右鍵,然後選擇 檢視記錄。
-
輸出將會顯示在終端機中。
後續步驟
您已完成!現在您的容器已準備就緒,您可能想要: