From 640eda0152afd1cc8c54ee1f0d4cec54325b62be Mon Sep 17 00:00:00 2001 From: Brigit Murtaugh Date: Tue, 8 Dec 2020 12:05:24 -0800 Subject: [PATCH] First set of updates --- README.md | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index b010ad3..247d7c2 100644 --- a/README.md +++ b/README.md @@ -1,19 +1,19 @@ # Try Out Development Containers: Node.js -A **development container** is a running [Docker](https://www.docker.com) container with a well-defined tool/runtime stack and its prerequisites. You can try out development containers with GtiHub Codespaces or **[VS Code Remote - Containers](https://aka.ms/vscode-remote/containers)**. +A **development container** is a running [Docker](https://www.docker.com) container with a well-defined tool/runtime stack and its prerequisites. You can try out development containers with GitHub Codespaces or **[VS Code Remote - Containers](https://aka.ms/vscode-remote/containers)**. -[GitHub Codespaces](https://github.com/features/codespaces) both use this same concept to quickly create customized, cloud-based development environments accessible [from VS Code](https://aka.ms/vso-dl) or the web. _Request access to beta if user does not already have it_ +[GitHub Codespaces](https://github.com/features/codespaces) both use this same concept to quickly create customized, cloud-based development environments accessible [from VS Code](https://aka.ms/vso-dl) or the web. _[Request access](https://github.com/features/codespaces/signup) to the Codespaces beta if you have not already._ The [VS Code Remote - Containers](https://aka.ms/vscode-remote/download/containers) extension allows you to clone a repository or open any folder mounted into (or already inside) a dev container and take advantage of VS Code's full development feature set. This is a sample project that lets you try out either option in a few easy steps. -> **Note:** If you're following the quick start, you can jump to the [Things to try](#things-to-try) section. +> **Note:** If you already have a Codespace or dev container, you can jump to the [Things to try](#things-to-try) section. ## Setting up the development container ### GitHub Codespaces -Follow these steps to open this sample in a codespace: +Follow these steps to open this sample in a Codespace: 1. **Insert instructions on creating a repo from the template** 1. Use the Code drop-down menu, and select Open with Codespaces. - Insert screenshot of Code button @@ -21,13 +21,13 @@ Follow these steps to open this sample in a codespace: ### VS Code Remote - Containers Follow these steps to open this sample in a container using the VS Code Remote - Containers extension: -1. If this is your first time using a development container, please follow the [getting started steps](https://aka.ms/vscode-remote/containers/getting-started). +1. If this is your first time using a development container, please ensure your system meets the pre-reqs (i.e. have Docker installed) in the [getting started steps](https://aka.ms/vscode-remote/containers/getting-started). 2. To use this repository, you can either open the repository in an isolated Docker volume: - Press F1 and select the **Remote-Containers: Try a Sample...** command. - - Choose the "Node" sample, wait for the container to start and try things out! - > **Note:** Under the hood, this will use **Remote-Containers: Open Repository in Container...** command to clone the source code in a Docker volume instead of the local filesystem. + - Choose the "Node" sample, wait for the container to start, and try things out! + > **Note:** Under the hood, this will use the **Remote-Containers: Clone Repository in Container Volume...** command to clone the source code in a Docker volume instead of the local filesystem. [Volumes](https://docs.docker.com/storage/volumes/) are the preferred mechanism for persisting data generated by and used by Docker containers. Or open a locally cloned copy of the code: @@ -45,7 +45,8 @@ Some things to try: 1. **Edit:** - Open `server.js` - - Try adding some code and check out the language features. Notice that `eslint` and the `vscode-eslint` extension are already installed in the container _insert reasoning_. + - Try adding some code and check out the language features. + - Notice that `eslint` and the `vscode-eslint` extension are already installed in the container since the `.devcontainer/devcontainer.json` lists `"dbaeumer.vscode-eslint"` as an extension to install automatically when the container is created. 2. **Terminal:** Press Ctrl+Shift+\` and type `uname` and other Linux commands from the terminal window. 3. **Build, Run, and Debug:** - Open `server.js` @@ -54,9 +55,9 @@ Some things to try: - Once the breakpoint is hit, try hovering over variables, examining locals, and more. - Continue and from the notification that is shown open a browser. Note you can connect to the server in the container. - The status line shows '1 Port Available'. Clicking the status bar entry shows the 'Ports' view that lists the currently available ports. -4. Rebuild or update your container _Brigit_ - - Note: This only applies to containers with the VS Code Remote - Containers ext. -**Forward a port statically:** You can also forward a port statically in the `.devcontainer/devcontainer.json` file. +4. **Rebuild or update your container** + - You may want to make changes to your container, such as installing a different version of a software or forwarding a new port. You'll rebuild your container for your changes to take effect. *Note: Currently, only containers with the VS Code Remote - Containers extension can be rebuilt.* +**Forward a port statically:** As an example change, let's forward a port statically in the `.devcontainer/devcontainer.json` file. *Note: Remote-Containers and Codespaces also take care of dynamic port forwarding, but there may be instances in which we want to statically declare a forwarded port.* - Open the `.devcontainer/devcontainer.json` file. - Uncomment the `forwardedPorts` attribute and adjust the port number as needed. - Press F1 and select the **Remote-Containers: Rebuild Container** command so the modifications are picked up.