Update go example, README
This commit is contained in:
@@ -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
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "Go",
|
"name": "Go",
|
||||||
"dockerFile": "Dockerfile",
|
"dockerFile": "Dockerfile",
|
||||||
|
"appPort": 9000,
|
||||||
"extensions": [
|
"extensions": [
|
||||||
"ms-vscode.go"
|
"ms-vscode.go"
|
||||||
],
|
],
|
||||||
|
|||||||
3
.devcontainer/settings.vscode.json
Normal file
3
.devcontainer/settings.vscode.json
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"go.gopath": "/go"
|
||||||
|
}
|
||||||
4
.vscode/launch.json
vendored
4
.vscode/launch.json
vendored
@@ -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"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
43
README.md
43
README.md
@@ -1,12 +1,43 @@
|
|||||||
# 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
|
||||||
|
|
||||||
|
|||||||
10
hello.go
10
hello.go
@@ -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
23
server.go
Normal 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)
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user