現已釋出!閱讀關於 11 月新增功能和修復的內容。

容器中的 Node.js

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

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

先決條件

  • 必須安裝 Docker 和 VS Code Container Tools 擴充套件,具體步驟請參閱 概述
  • Node.js 10 或更高版本

建立 Express Node.js 應用程式

  1. 為專案建立一個資料夾。

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

    npx express-generator
    npm install
    

向專案新增 Docker 檔案

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

  2. 開啟命令面板 (⇧⌘P (Windows, Linux Ctrl+Shift+P)) 並使用 Containers: Add Docker Files to Workspace... 命令

    Add Dockerfile to a Node.js project

  3. 在提示應用程式平臺時選擇 Node.js

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

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

  6. 在提示是否包含 Docker Compose 檔案時選擇 YesNo。Compose 通常用於一次執行多個容器。

該擴充套件會建立 Dockerfile.dockerignore 檔案。如果您選擇包含 Docker Compose 檔案,還會生成 docker-compose.ymldocker-compose.debug.yml。最後,該擴充套件會在 .vscode/tasks.json 中建立一組用於構建和執行容器(用於除錯和釋出配置)的 VS Code 任務,並在 .vscode/launch.json 中建立用於在容器內除錯服務的 launch 除錯配置

向映象新增環境變數

Container Tools 擴充套件透過使用 IntelliSense 提供自動完成和上下文幫助,幫助您編寫 Dockerfile。要檢視此功能,請按照以下步驟為服務映象新增環境變數

  1. 開啟 Dockerfile 檔案。

  2. 使用 ENV 指令向服務容器映象新增環境變數。

    Add an environment variable to Docker image

    請注意 Container Tools 擴充套件如何列出所有可用的 Dockerfile 指令和描述其語法。

    Container Tools 擴充套件使用 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. 開啟 Web 瀏覽器並導航至 https://:3000。您應該會看到類似於以下的頁面

    Application page in browser

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

構建服務映象

  1. 開啟命令面板 (⇧⌘P (Windows, Linux Ctrl+Shift+P)) 並選擇 Container Images: Build Image... 命令。

  2. 開啟 Container Explorer 並驗證新映象是否在 Images 檢視中可見

    Verify Docker image exists

執行服務容器

  1. 右鍵單擊上一節中構建的映象,然後選擇 RunRun Interactive。容器應啟動,並且您應該能在 Containers 檢視中看到它

    Running service container

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

    Application page in browser

  3. 測試完成後,在 Containers 檢視中右鍵單擊容器並選擇 Stop

在服務容器中進行除錯

當 Container Tools 擴充套件嚮應用程式新增檔案時,它還會向 .vscode/launch.json 新增一個 VS Code 偵錯程式配置,用於在容器內執行時除錯服務。該擴充套件會檢測服務使用的協議和埠,並將瀏覽器指向服務。

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

  2. 確保選擇了 Containers: Node.js Launch 除錯配置。

    Selected debug configuration

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

    • 構建服務的映象。
    • 執行服務的容器。
    • 瀏覽器開啟到對映到服務容器的(隨機)埠。
    • 偵錯程式在 index.js 中的斷點處停止。

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

    您可以透過在 tasks.jsonnode 物件下的 docker-run: debug 任務中將 inspectMode 屬性設定為 break,來配置應用程式在執行開始前等待偵錯程式附加。

檢視應用程式日誌

您可以透過容器上的 View Logs 命令在 VS Code 中檢視日誌

  1. 導航到 Container Explorer。

  2. Containers 檢視中,右鍵單擊您的容器並選擇 View Logs

    Screenshot of logs in the terminal

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

後續步驟

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

© . This site is unofficial and not affiliated with Microsoft.