diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 4a51a19..8a2ccb6 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -6,9 +6,10 @@ "appPort": [9000], "runArgs": [ - // Comment out the next line to run as root instead. Linux users, - // update Dockerfile with your user's UID/GID if not 1000. - "-u", "vscode", + // Uncomment the next line to run as root instead. Linux users, + // update Dockerfile with your user's UID/GID if not 1000 when + // using the default "vscode" user. + // "-u", "root", "--cap-add=SYS_PTRACE", "--security-opt", "seccomp=unconfined" ], diff --git a/README.md b/README.md index bcda4f2..07a6cbc 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ Follow these steps to open this sample in a container: Once you have this sample opened in a container, you'll be able to work with it like you would locally. -> **Note:** This container runs as a non-root user with sudo access by default. Comment out `"-u", "vscode"` in `.devcontainer/devcontainer.json` if you'd prefer to run as root. +> **Note:** This container runs as a non-root user with sudo access by default. Uncomment `"-u", "root"` in `.devcontainer/devcontainer.json` if you'd prefer to run as root. Some things to try: @@ -29,13 +29,13 @@ Some things to try: - Open `server.go` - Try adding some code and check out the language features. 2. **Terminal:** Press ctrl+shift+\` and type `uname` and other Linux commands from the terminal window. -2. **Build, Run, and Debug:** +3. **Build, Run, and Debug:** - Open `server.go` - Add a breakpoint (e.g. on line 22). - Press F5 to launch the app in the container. - Once the breakpoint is hit, try hovering over variables, examining locals, and more. - Continue, then open a local browser and go to `http://localhost:9000` and note you can connect to the server in the container. -3. **Forward another port:** +4. **Forward another port:** - Stop debugging and remove the breakpoint. - Open `server.go` - Change the server port to 5000. (`portNumber := "5000"`) @@ -43,22 +43,22 @@ Some things to try: - Press F1 and run the **Remote-Containers: Forward Port from Container...** command. - Select port 5000. - Click "Open Browser" in the notification that appears to access the web app on this new port. -3. **Refactoring - rename:** +5. **Refactoring - rename:** - Open `hello.go`, select method name `Hello` press F1 and run the **Rename Symbol** command. -3. **Refactoring - extract:** +6. **Refactoring - extract:** - Open `hello.go` and select string, press F1 and run the **Go: Extract to variable** command. - Open `hello.go` and select line with return statement, press F1 and run the **Go: Extract to function** command. -3. **Generate tests:** +7. **Generate tests:** - Open `hello.go` and press F1 and run the **Go: Generate Unit Tests For File** command. - Implement a test case: Open file `hello_test.go` and edit the line with the `TODO` comment: `{"hello without name", "Hello, "},` - You can toggle between implementation file and test file with press F1 and run the **Go: Toggle Test File** - Tests can also run as benchmarks: Open file `hello_test.go`, press F1 and run the **Go: Benchmark File** -4. **Stub generation:** ( [details](https://github.com/josharian/impl)) +8. **Stub generation:** ( [details](https://github.com/josharian/impl)) - define a struct `type mock struct {}`, enter a new line , press F1 and run the **Go: Generate interface stubs** command. - edit command `m *mock http.ResponseWriter` -4. **Fill structs:** ([details](https://github.com/davidrjenni/reftools/tree/master/cmd/fillstruct)) +9. **Fill structs:** ([details](https://github.com/davidrjenni/reftools/tree/master/cmd/fillstruct)) - Open `hello.go` and select `user{}` of variable asignment, press F1 and run the **Go: Fill struct** command. -4. **Add json tags to structs:** ([details](https://github.com/fatih/gomodifytags)) +10. **Add json tags to structs:** ([details](https://github.com/fatih/gomodifytags)) - Open `hello.go` and go with cursor in to a struct, press F1 and run the **Go: Add Tags To Struct Fields** command.