Go Dev Container
Ultimate Go development container for Visual Studio Code
Features
- Compatible with
amd64
,386
,arm64
,armv6
,armv7
andppc64le
CPUs qmcgaw/godevcontainer:alpine
andqmcgaw/godevcontainer
- Based on Alpine 3.18 (size of 936MB)
qmcgaw/godevcontainer:debian
- beware it has CVE because of outdated packages- Based on Debian Buster Slim (size of 1.24GB)
- Based on qmcgaw/basedevcontainer
- Based on either Alpine or Debian
- Minimal custom terminal and packages
- See more features
- Go 1.20 code obtained from the latest tagged Golang Docker image
- Go tooling integrating with VS code, all cross built statically from source at the binpot:
- Google's Go language server gopls
- golangci-lint, includes golint and other linters
- dlv
⚠️ only works onamd64
andarm64
- gomodifytags
- goplay
- impl
- gotype-live
- gotests
- gopkgs v2
- Terminal Go tools
- Cross platform
- Easily bind mount your SSH keys to use with git
- Manage your host Docker from within the dev container, more details at qmcgaw/basedevcontainer
- Extensible with docker-compose.yml
- Comes with extra Go binary tools for a few extra MBs:
kubectl
,kubectx
,kubens
,stern
andhelm
Requirements
- Docker installed and running
- If you don't use Linux or Windows with WSL, share the directory
~/.ssh
and the directory of your project with Docker Desktop
- If you don't use Linux or Windows with WSL, share the directory
- Docker Compose installed
- VS code installed
- VS code remote containers extension installed
Setup for a project
- Setup your configuration files
-
With style
💯 docker run -it --rm -v "/yourrepopath:/repository" qmcgaw/devtainr:v0.2.0 -dev go -path /repository -name projectname
Or use the built binary
-
Or manually: download this repository and put the .devcontainer directory in your project.
-
- If you have a .vscode/settings.json, eventually move the settings to .devcontainer/devcontainer.json in the
"settings"
section as .vscode/settings.json take precedence over the settings defined in .devcontainer/devcontainer.json. - Open the command palette in Visual Studio Code (CTRL+SHIFT+P) and select
Remote-Containers: Open Folder in Container...
and choose your project directory
Customization
See the .devcontainer/README.md document in your repository.
TODOs
- qmcgaw/basedevcontainer todos
License
This repository is under an MIT license unless indicated otherwise.