Movatterモバイル変換


[0]ホーム

URL:


TryMCP servers to extend agent mode in VS Code!

Dismiss this update

Node.js in a container

In this guide you will learn how to:

  • Create aDockerfile file for anExpress Node.js service container
  • Build, run, and verify the functionality of the service
  • Debug the service running within a container

Prerequisites

  • Both Docker and the VS Code Container Tools extension must be installed as described in theoverview
  • Node.js version 10 or later

Create an Express Node.js application

  1. Create a folder for the project.

  2. Open a development command prompt in the project folder and create the project:

    npx express-generatornpm install

Add Docker files to the project

  1. Open the project folder in VS Code.

  2. Open the Command Palette (⇧⌘P (Windows, LinuxCtrl+Shift+P)) and useContainers: Add Docker Files to Workspace... command:

    Add Dockerfile to a Node.js project

  3. SelectNode.js when prompted for the application platform.

  4. Choose the defaultpackage.json file.

  5. Enter3000 when prompted for the application port.

  6. Select eitherYes orNo when prompted to include Docker Compose files. Compose is typically used when running multiple containers at once.

The extension createsDockerfile and.dockerignore files. If you elected to include Docker Compose files,docker-compose.yml anddocker-compose.debug.yml will be generated as well. Finally, the extension will create a set ofVS Code tasks in.vscode/tasks.json for building and running the container (in both debug- and release-configurations) and alaunch debug configuration in.vscode/launch.json for debugging the service within the container.

Add an environment variable to the image

The Container Tools extension helps you author Dockerfiles by usingIntelliSense to provide auto-completions and contextual help. To see this feature in action, add an environment variable to your service image by following these steps:

  1. Open theDockerfile file.

  2. UseENV instruction to add an environment variable to the service container image.

    Add an environment variable to Docker image

    Note how the Container Tools extension lists all available Dockerfile instructions and describes the syntax.

    The Container Tools extension uses thebase stage of theDockerfile to create a debug version of the container image for your service. Put the environment variable definition in thebase stage to have this variable available in both debug and release versions of the container image.

  3. Save theDockerfile file.

Run the service locally

  1. Open a terminal (⌃` (Windows, LinuxCtrl+`)).

  2. Enternpm run start to start the application:

    > express-app@0.0.0 start /Users/user/code/scratch/express-app> node ./bin/www
  3. Open the web browser and navigate tohttp://localhost:3000. You should see a page similar to the following:

    Application page in browser

  4. When done testing, typeCtrl+C in the terminal.

Build the service image

  1. Open the Command Palette (⇧⌘P (Windows, LinuxCtrl+Shift+P)) and select theContainer Images: Build Image... command.

  2. Open the Container Explorer and verify that the new image is visible in the Images view:

    Verify Docker image exists

Run the service container

  1. Right-click on the image built in the previous section and selectRun orRun Interactive. The container should start and you should be able to see it in the Containers view:

    Running service container

  2. Open the web browser and navigate tohttp://localhost:3000. You should see a page similar to the following:

    Application page in browser

  3. When done testing, right-click the container in the Containers view and selectStop.

Debug in the service container

When the Container Tools extension adds files to the application, it also adds aVS Code debugger configuration in.vscode/launch.json for debugging the service when running inside a container. The extension detects the protocol and port used by the service and points the browser to the service.

  1. Set a breakpoint in theget() handler for the'/' route inroutes/index.js.

  2. Make sure theContainers: Node.js Launch debugger configuration is selected.

    Selected debug configuration

  3. Start debugging (use theF5 key).

    • The image for the service builds.
    • The container for the service runs.
    • The browser opens to the (random) port mapped to the service container.
    • The debugger stops at the breakpoint inindex.js.

    Note that, because the debugger attachesafter the application starts, the breakpoint may be missed the first time around; you might have to refresh the browser to see the debugger break on the second try.

    You can configure the application to wait for the debugger to attach before starting execution by setting theinspectMode property tobreak in thedocker-run: debug task intasks.json under thenode object.

View the application logs

You can view the logs in VS Code by using theView Logs command on the container:

  1. Navigate to the Container Explorer.

  2. In theContainers view, right-click on your container and chooseView Logs.

    Screenshot of logs in the terminal

  3. The output will be displayed in the terminal.

Next steps

You're done! Now that your container is ready, you may want to:

12/13/2022

[8]ページ先頭

©2009-2025 Movatter.jp