This commit is contained in:
Chuck Lantz 2019-04-19 13:16:41 -07:00
Родитель aafae304bf
Коммит 5066da6e19
7 изменённых файлов: 77 добавлений и 21 удалений

Просмотреть файл

@ -23,7 +23,15 @@ RUN go get -u -v \
github.com/mgechev/revive \
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
# Clean up

Просмотреть файл

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

Просмотреть файл

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

4
.vscode/launch.json поставляемый
Просмотреть файл

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

Просмотреть файл

@ -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`
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!
## Things to try
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
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
the rights to use your contribution. For details, visit https://cla.microsoft.com.
@ -25,4 +56,4 @@ contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additio
## License
Copyright © Microsoft Corporation All rights reserved.<br />
Licensed under the MIT License. See LICENSE in the project root for license information.
Licensed under the MIT License. See LICENSE in the project root for license information.

Просмотреть файл

@ -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
Просмотреть файл

@ -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)
}