Update go example, README

This commit is contained in:
Chuck Lantz
2019-04-19 13:16:41 -07:00
parent aafae304bf
commit 5066da6e19
7 changed files with 77 additions and 21 deletions

View File

@@ -23,7 +23,15 @@ RUN go get -u -v \
github.com/mgechev/revive \ github.com/mgechev/revive \
github.com/derekparker/delve/cmd/dlv github.com/derekparker/delve/cmd/dlv
# Install git, process tools # gocode-gomod
RUN go get -x -d github.com/stamblerre/gocode \
&& go build -o gocode-gomod github.com/stamblerre/gocode \
&& mv gocode-gomod $GOPATH/bin/
# Copy default endpoint specific user settings overrides into container to specify Python path
COPY settings.vscode.json /root/.vscode-remote/data/Machine/settings.json
# Verify git, process tools installed
RUN apt-get update && apt-get -y install git procps RUN apt-get update && apt-get -y install git procps
# Clean up # Clean up

View File

@@ -1,6 +1,7 @@
{ {
"name": "Go", "name": "Go",
"dockerFile": "Dockerfile", "dockerFile": "Dockerfile",
"appPort": 9000,
"extensions": [ "extensions": [
"ms-vscode.go" "ms-vscode.go"
], ],

View File

@@ -0,0 +1,3 @@
{
"go.gopath": "/go"
}

4
.vscode/launch.json vendored
View File

@@ -2,11 +2,11 @@
"version": "0.2.0", "version": "0.2.0",
"configurations": [ "configurations": [
{ {
"name": "Launch file", "name": "Launch Server",
"type": "go", "type": "go",
"request": "launch", "request": "launch",
"mode": "debug", "mode": "debug",
"program": "${file}" "program": "${workspaceFolder}/server.go"
} }
] ]
} }

View File

@@ -1,16 +1,47 @@
# Go Sample Project for Visual Studio Remote - Containers # Try Out Development Containers: Go
This is a sample project to go along with the "try" quick start for the VS Code Remote - Containers extension. This is a sample project to go along with the "try" quick start for the **[VS Code Remote - Containers](https://aka.ms/vscode-remote/containers)** extension.
Using the sample: **If you aren't already following the quick start, [see here](#setting-up-the-development-container).**
1. **[Windows]** Disable automatic line ending conversion for Git on the *Windows side* (given Linux and Windows use different line endings). Run: `git config --global core.autocrlf false` ## Things to try
2. Follow the steps at [https://aka.ms/vscode-remote/containers/getting-started](https://aka.ms/vscode-remote/containers/getting-started).
3. Open `hello.go`, edit, launch the program, and try things out! One you have this sample opened in a container, you'll be able to work with it like you would locally.
Some things to try:
2. **Edit:**
1. Open `server.go`
2. Try adding some code and check out the language features.
3. **Build, Run, and Debug:**
1. Open `sever.go`
2. Add a breakpoint.
3. Press <kbd>F5</kbd> to launch the app in the container.
4. Open a local browser and go to `http://localhost:9000` and note you can connect to the server in the container.
5. Once the breakpoint is hit, try hovering over variables, examining locals, and more.
4. **Forward another port:**
1. Stop debugging
2. Open `sever.js`
3. Change the server port to 5000. (`portNumber := "5000"`)
4. Press <kbd>F5</kbd> to launch the app in the container.
5. Press <kbd>F1</kbd> and run the **Remote-Containers: Forward Port...** command.
6. Select port 5000.
7. Click "Open Browser" in the notification that appears to access the web app on this new port.
## Setting up the development container
Follow these steps to open this sample in a container:
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) to get set up.
2. If you're not yet in a development container:
1. Clone this repository.
2. Press <kbd>F1</kbd> and select the **Remote-Container: Open Folder in Container...** command.
3. Select the cloned copy of this folder, wait for the container to start, and try things out!
## Contributing ## Contributing
This project welcomes contributions and suggestions. Most contributions require you to agree to a This project welcomes contributions and suggestions. Most contributions require you to agree to a
Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us
the rights to use your contribution. For details, visit https://cla.microsoft.com. the rights to use your contribution. For details, visit https://cla.microsoft.com.

View File

@@ -1,10 +0,0 @@
/*----------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See LICENSE in the project root for license information.
*---------------------------------------------------------------------------------------*/
package main
import "fmt"
func main() {
fmt.Println("hello world")
}

23
server.go Normal file
View File

@@ -0,0 +1,23 @@
/*----------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See LICENSE in the project root for license information.
*---------------------------------------------------------------------------------------*/
package main
import (
"io"
"net/http"
"fmt"
)
func hello(w http.ResponseWriter, r *http.Request) {
io.WriteString(w, "Hello remote world!")
}
func main() {
portNumber := "9000"
http.HandleFunc("/", hello)
fmt.Println("Server listening on port ", portNumber)
http.ListenAndServe(":" + portNumber, nil)
}