容器中的 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 擴充功能透過使用 IntelliSense 提供自動完成和上下文說明,協助您撰寫 Dockerfile。若要查看此功能的實際運作,請按照下列步驟將環境變數新增至您的服務映像
-
開啟
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
-
開啟網頁瀏覽器並導覽至 http://localhost:3000。您應該會看到類似以下的頁面
-
完成測試後,在終端機中輸入 Ctrl+C。
建置服務映像
-
開啟命令面板 (⇧⌘P (Windows, Linux Ctrl+Shift+P)) 並選取 **Docker 映像: 建置映像...** 命令。
-
開啟 Docker Explorer,並確認新的映像在映像樹狀結構中可見
執行服務容器
-
在先前章節中建置的映像上按一下滑鼠右鍵,然後選取 **執行** 或 **互動式執行**。容器應會啟動,而且您應該能夠在 Docker 容器樹狀結構中看到它
-
開啟網頁瀏覽器並導覽至 http://localhost:3000。您應該會看到類似以下的頁面
-
完成測試後,在容器樹狀結構中按一下滑鼠右鍵,然後選取 **停止**。
在服務容器中偵錯
當 Docker 擴充功能將檔案新增至應用程式時,它也會在 .vscode/launch.json
中新增 VS Code 偵錯工具組態,以便在容器內執行時偵錯服務。此擴充功能會偵測服務使用的通訊協定和連接埠,並將瀏覽器指向服務。
-
在
routes/index.js
中 '/' 路徑的get()
處理常式中設定中斷點。 -
確定已選取 **Docker Node.js Launch** 偵錯工具組態。
-
開始偵錯 (使用 F5 鍵)。
- 服務的 Docker 映像會建置。
- 服務的 Docker 容器會執行。
- 瀏覽器會開啟至對應至服務容器的 (隨機) 連接埠。
- 偵錯工具會在
index.js
中的中斷點停止。
請注意,由於偵錯工具在應用程式啟動_後_才附加,因此第一次可能會錯過中斷點;您可能必須重新整理瀏覽器才能在第二次看到偵錯工具中斷。
您可以將
inspectMode
屬性設定為tasks.json
中docker-run: debug
工作node
物件下的break
,將應用程式設定為在啟動執行之前等待偵錯工具附加。
檢視應用程式記錄
您可以使用容器上的 **檢視記錄** 命令,在 VS Code 中檢視記錄
-
導覽至 Docker Explorer。
-
在 **容器** 索引標籤中,在您的容器上按一下滑鼠右鍵,然後選擇 **檢視記錄**。
-
輸出將會顯示在終端機中。
後續步驟
您已完成!現在您的容器已準備就緒,您可能想要