Awesome
Go Dev Container
Ultimate Go development container for Visual Studio Code
Features
- Compatible with
amd64
,386
,arm64
,armv6
andarmv7
CPUs qmcgaw/godevcontainer:alpine
andqmcgaw/godevcontainer
- Based on Alpine 3.20 (size of 996MB)
qmcgaw/godevcontainer:debian
- Based on Debian Buster Slim (size of 1.21GB)
- Based on qmcgaw/basedevcontainer
- Based on either Alpine or Debian
- Minimal custom terminal and packages
- See more features
- Go 1.23 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 on
amd64
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 use OSX, share the
~/.ssh
directory and the directory of your project with Docker Desktop
- If you use OSX, share the
- Docker Compose installed
- VS code installed
- VS code dev 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
Dev 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.