Node.js在容器里

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

  • 创建一个DockerfileExpress Node.js service container 的 file
  • 构建、运行并验证服务的功能
  • 调试容器内运行的服务

前提条件

  • Docker 和 VS Code 容器工具扩展都必须按照概述中描述安装
  • Node.js 10 或更高版本

创建快速Node.js应用

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

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

    npx express-generator
    npm install
    

向项目添加 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.yml以及docker-compose.debug.yml也会生成。最后,扩展会创建一组 VS Code 任务.vscode/tasks.json用于构建和运行容器(包括调试和发布配置)以及启动调试配置.vscode/launch.json用于在容器内调试服务。

给图片添加一个环境变量

容器工具扩展通过使用 IntelliSense 提供自动补全和上下文帮助,帮助你编写 Dockerfile。要查看该功能的应用,请按照以下步骤向你的服务镜像添加环境变量:

  1. 打开Dockerfile档案。

  2. 用途环境环境向服务容器镜像添加环境变量的指令。

    向 Docker 镜像添加环境变量

    注意容器工具扩展中列出了所有可用的 Dockerfile 指令并描述语法。

    Container Tools 扩展使用基地舞台Dockerfile为你的服务创建容器镜像的调试版本。将环境变量定义放入基地该变量可在容器镜像的调试版本和发布版本中使用。

  3. 拯救Dockerfile档案。

本地运行服务

  1. 打开一个终端(⌃'(Windows,Linux Ctrl+')。

  2. 进来NPM 运行启动开始申请:

    > 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. 测试完成后,在容器视图中右键点击容器,选择停止

在服务容器中调试

当容器工具扩展向应用程序添加文件时,它也会在.vscode/launch.json用于在容器内运行时调试服务。扩展检测服务使用的协议和端口,并指向浏览器访问该服务。

  1. get()负责该路线的处理员'/'路线/index.js.

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

    选定调试配置

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

    • 礼拜的形象逐渐形成。
    • 服务用的集装箱运行。
    • 浏览器打开时会切换到映射到服务容器的(随机)端口。
    • 调试器在 的断点处停止index.js.

    注意,由于调试器是在应用程序启动才附加的,第一次可能会漏掉断点;你可能需要刷新浏览器才能看到调试器第二次失败。

    你可以通过设置 inspectMode 属性来配置应用程序等待调试器连接后再开始执行休息docker-run: debug任务tasks.json节点目标。

查看应用日志

您可以通过容器上的“查看日志”命令在 VS Code 中查看日志:

  1. 导航到容器浏览器。

  2. 容器视图中,右键点击你的容器,选择查看日志

    终端日志截图

  3. 输出会显示在终端里。

下一步

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