本站点文档内容均翻译自code.visualstudio.com,仅供个人学习,如有差异请以官网为准。

Node.js 在容器中

在本指南中,您将学习如何:

  • 创建一个Dockerfile 文件用于 Express Node.js 服务容器
  • 构建、运行并验证服务的功能
  • 调试容器内运行的服务

先决条件

创建一个 Express Node.js 应用程序

  1. 为项目创建一个文件夹。

  2. 在项目文件夹中打开开发命令提示符并创建项目:

    npx express-generator
    npm 安装
    

将Docker文件添加到项目中

  1. 在 VS Code 中打开项目文件夹。

  2. 打开命令面板 (⇧⌘P (Windows, Linux Ctrl+Shift+P)) 并使用 容器:将Docker文件添加到工作区... 命令:

    将Dockerfile添加到Node.js项目中

  3. 选择 Node.js 当在应用平台提示时。

  4. 选择默认的package.json文件。

  5. 输入3000在提示输入应用端口时。

  6. 选择当被提示包含Docker Compose文件时。通常在一次运行多个容器时使用Compose。

该扩展创建Dockerfile.dockerignore文件。如果您选择包含Docker Compose文件,docker-compose.ymldocker-compose.debug.yml 也会生成。最后,扩展将创建一组 VS Code 任务.vscode/tasks.json 用于构建和运行容器(在调试和发布配置中)以及一个 启动调试配置.vscode/launch.json用于在容器内调试服务。

在图像中添加环境变量

Container Tools 扩展通过使用IntelliSense来帮助您编写Dockerfile,提供自动完成和上下文帮助。要查看此功能的运行,请按照以下步骤为您的服务镜像添加环境变量:

  1. 打开Dockerfile文件。

  2. 使用环境指令是向服务容器镜像添加一个环境变量。

    在Docker镜像中添加环境变量

    注意 Container Tools 扩展如何列出所有可用的 Dockerfile 指令并描述语法。

    容器工具扩展使用基础阶段Dockerfile要为您的服务创建一个调试版本的容器镜像。将环境变量定义放在基础阶段以在容器镜像的调试和发布版本中都可用此变量。

  3. 保存Dockerfile文件。

在本地运行服务

  1. 打开终端 (⌃` (Windows, Linux Ctrl+`)).

  2. 输入npm 运行 start启动应用程序:

    > express-app@0.0.0 start /Users/user/code/scratch/express-app
    > node ./bin/www
    
  3. 打开网页浏览器并导航到 http://localhost:3000。您应该会看到类似于以下的页面:

    浏览器中的申请页面

  4. 测试完成后,在终端中输入 Ctrl+C

构建服务镜像

  1. 打开命令面板 (⇧⌘P (Windows, Linux Ctrl+Shift+P)) 并选择 容器镜像:构建镜像... 命令。

  2. 打开容器浏览器,并验证新镜像在镜像视图中可见:

    验证Docker镜像是否存在

运行服务容器

  1. 右键单击上一节中创建的图像并选择运行交互式运行。容器应该会启动,您应该能够在容器视图中看到它:

    运行服务容器

  2. 打开网页浏览器并导航到 http://localhost:3000。您应该会看到类似于以下的页面:

    浏览器中的申请页面

  3. 测试完成后,在容器视图中右键单击容器并选择停止

服务容器中的调试

当 Container Tools 扩展向应用程序添加文件时,它还会在 中添加一个 VS Code 调试器配置.vscode/launch.json用于在容器内运行时调试服务。该扩展检测服务使用的协议和端口,并将浏览器指向该服务。

  1. 在...设置断点获取()处理程序'/'路线在routes/index.js输入:.

  2. 确保选择容器:Node.js 启动 调试器配置。

    选择的调试配置

  3. 开始调试(使用F5键)。

    • 服务构建的图像。
    • 该服务的容器正在运行。
    • 浏览器打开到映射到服务容器的(随机)端口。
    • 调试器在断点处停止index.js输入:.

    请注意,由于调试器在应用启动后附加,首次运行时可能会错过断点;您可能需要刷新浏览器才能在第二次尝试时看到调试器暂停。

    您可以通过将 inspectMode 属性设置为 来配置应用程序在启动执行之前等待调试器附加。中断docker-run: 调试任务在任务.json节点对象。

查看应用日志

您可以通过在容器上使用 查看日志 命令在 VS Code 中查看日志:

  1. 导航到容器浏览器。

  2. 在容器视图中,右键单击您的容器并选择查看日志

    终端中日志的截图

  3. 输出将在终端中显示。

下一步

你完成了!现在你的容器已经准备好了,你可能想: