Skip to content

Remote Containers Smoke Test

Christof Marti edited this page Apr 29, 2020 · 6 revisions

Instructions on how to smoke-test the Remote Containers extension before a release.

Single container

  • Open an empty folder.
  • Create a Dockerfile:
FROM node:lts
  • Run the Reopen Folder in Container command.
  • Pick From 'Dockerfile'.
  • Wait for container to start and Code to connect to it.
  • Create a server.js:
require('http')
    .createServer((req, res) => {
        res.end('Hello!');
    })
    .listen(0);
  • Check IntelliSense and hovers work.
  • Place a breakpoint and F5.
  • Forward the port from the Remote Explorer and open the browser on it.
  • Check breakpoint is hit.
  • Add RUN touch /foobar to the end of the Dockerfile.
  • Reload window, check it reconnects to the container and /foobar does not exist.
  • Run the Rebuild Container command, check it reconnects to a container and /foobar does exist.

Docker Compose

  • Open an empty folder.
  • Run the Reopen Folder in Container command.
  • Pick Node.js & Mongo DB.
  • Wait for containers to start and Code to connect to one.
  • Verify the ESLint extension is installed.
  • Add RUN touch /foobar to the end of the Dockerfile.
  • Reload window, check it reconnects to the container and /foobar does not exist.
  • Run the Rebuild Container command, check it reconnects to a container and /foobar does exist.

Attach to Container

  • Open empty local window.
  • Install Docker extension.
  • Run docker run -d debian sleep infinity from the terminal.
  • In the Docker viewlet right-click the debian container and run Attach Visual Studio Code.
  • In the new window open some folder in the container and check the window reconnects to the container with that folder open.
  • Close remote connection.
  • Attach again to the same container and verify it opens on the same folder as before.

Open Repository in Container

  • Run Open Repository in Container...
  • Verify the container comes up with the repository cloned and the Node modules installed.