🚀 在 VS Code 中取得

容器中的 Node.js

在本指南中,您將學習如何:

  • Express Node.js 服務容器建立 Dockerfile 檔案
  • 建置、執行並驗證服務的功能
  • 偵錯在容器內執行的服務

先決條件

  • 必須安裝 Docker 和 VS Code Docker 擴充功能,如概觀中所述
  • Node.js 10 或更新版本

建立 Express Node.js 應用程式

  1. 為專案建立資料夾。

  2. 在專案資料夾中開啟開發命令提示字元並建立專案

    npx express-generator
    npm install
    

將 Docker 檔案新增至專案

  1. 在 VS Code 中開啟專案資料夾。

  2. 開啟命令選擇區 (⇧⌘P (Windows、Linux Ctrl+Shift+P)) 並使用 Docker: 將 Docker 檔案新增至工作區... 命令

    Add Dockerfile to a Node.js project

  3. 在提示應用程式平台時,選取 Node.js

  4. 選擇預設的 package.json 檔案。

  5. 在提示應用程式連接埠時,輸入 3000

  6. 在提示是否包含 Docker Compose 檔案時,選取 。Compose 通常在同時執行多個容器時使用。

擴充功能會建立 Dockerfile.dockerignore 檔案。如果您選擇包含 Docker Compose 檔案,也會產生 docker-compose.ymldocker-compose.debug.yml。最後,擴充功能會在 .vscode/tasks.json 中建立一組 VS Code 工作,用於建置和執行容器 (在偵錯和發行組態中),並在 .vscode/launch.json 中建立 啟動偵錯組態,用於偵錯容器內的服務。

將環境變數新增至映像

Docker 擴充功能可協助您撰寫 Dockerfile,方法是使用 IntelliSense 來提供自動完成和內容相關說明。若要查看此功能的實際運作,請依照下列步驟將環境變數新增至您的服務映像

  1. 開啟 Dockerfile 檔案。

  2. 使用 ENV 指令將環境變數新增至服務容器映像。

    Add an environment variable to Docker image

    請注意 Docker 擴充功能如何列出所有可用的 Dockerfile 指令並說明語法。

    Docker 擴充功能使用 Dockerfilebase 階段來為您的服務建立容器映像的偵錯版本。將環境變數定義放在 base 階段,讓此變數在容器映像的偵錯和發行版本中都可用。

  3. 儲存 Dockerfile 檔案。

在本機執行服務

  1. 開啟終端機 (⌃` (Windows、Linux Ctrl+`))。

  2. 輸入 npm run start 以啟動應用程式

    > express-app@0.0.0 start /Users/user/code/scratch/express-app
    > node ./bin/www
    
  3. 開啟網頁瀏覽器並導覽至 https://127.0.0.1:3000。您應該會看到類似以下的頁面

    Application page in browser

  4. 完成測試後,在終端機中輸入 Ctrl+C

建置服務映像

  1. 開啟命令選擇區 (⇧⌘P (Windows、Linux Ctrl+Shift+P)) 並選取 Docker 映像: 建置映像... 命令。

  2. 開啟 Docker 瀏覽器並確認新的映像在映像樹狀結構中可見

    Verify Docker image exists

執行服務容器

  1. 在上一節中建置的映像上按一下滑鼠右鍵,然後選取 執行互動式執行。容器應該會啟動,而且您應該能夠在 Docker 容器樹狀結構中看到它

    Running service container

  2. 開啟網頁瀏覽器並導覽至 https://127.0.0.1:3000。您應該會看到類似以下的頁面

    Application page in browser

  3. 完成測試後,在容器樹狀結構中按一下滑鼠右鍵,然後選取 停止

在服務容器中偵錯

當 Docker 擴充功能將檔案新增至應用程式時,它也會在 .vscode/launch.json 中新增 VS Code 偵錯工具組態,以便在容器內執行時偵錯服務。擴充功能會偵測服務使用的協定和連接埠,並將瀏覽器指向服務。

  1. routes/index.js'/' 路徑的 get() 處理常式中設定中斷點。

  2. 確定已選取 Docker Node.js 啟動 偵錯工具組態。

    Selected Docker debug configuration

  3. 開始偵錯 (使用 F5 鍵)。

    • 服務的 Docker 映像會建置。
    • 服務的 Docker 容器會執行。
    • 瀏覽器會開啟至對應至服務容器的 (隨機) 連接埠。
    • 偵錯工具會在 index.js 中的中斷點停止。

    請注意,由於偵錯工具在應用程式啟動之後才附加,因此第一次可能會錯過中斷點;您可能需要重新整理瀏覽器才能在第二次嘗試時看到偵錯工具中斷。

    您可以將應用程式設定為在啟動執行之前等待偵錯工具附加,方法是在 tasks.jsondocker-run: debug 工作中的 node 物件下,將 inspectMode 屬性設定為 break

檢視應用程式記錄

您可以使用容器上的 檢視記錄 命令,在 VS Code 中檢視記錄

  1. 導覽至 Docker 瀏覽器。

  2. 容器 索引標籤中,在您的容器上按一下滑鼠右鍵,然後選擇 檢視記錄

    Screenshot of logs in the terminal

  3. 輸出將會顯示在終端機中。

後續步驟

您已完成!現在您的容器已準備就緒,您可能想要: