/docker-go-dev

The containerized Go development environment.

Primary LanguageDockerfileMIT LicenseMIT

deis/go-dev

Build Status

A Go language development toolbox.

Some Azure projects use this Docker image as a standard build and test environment, but it is intended to be useful to any Go developer. Please help make deis/go-dev better by creating issues and submitting pull requests.

Image Contents

  • based on Ubuntu 20.04
  • az: Azure cloud command-line tool
  • azcopy: Utility for copying data to/from Microsoft Azure Blob and File storage
  • delve: debugger for the Go programming language
  • Docker: Docker binaries to be able to bind mount /var/run/docker.sock in the dev environment container
  • ginkgo: BDD testing framework for Go
  • go-bindata: converts any file into Go source code
  • golangci-lint: concurrent runner for Go linting tools
  • goss: YAML-based tool for validating a server's configuration
  • gox: simple Go cross-compiling tool
  • helm: Kubernetes package manager
  • jq: command-line JSON processor
  • jwt: tool for creating and parsing JSON Web Tokens
  • k: automatically run the correct version of kubectl every time
  • kubectl: Kubernetes command-line client
  • Packer: build automated machine images
  • ruby: ruby scripting language
  • shellcheck: static analysis for shell scripts
  • shfmt: shell script parser, formatter, and interpreter
  • shyaml: YAML access from the command line
  • test-cover.sh: test coverage for multiple Go packages
  • unzip: list, test, and extract files from ZIP archives
  • upx: executable packer
  • vim: text editor
  • wamerican: American English dictionary words for /usr/share/dict

Usage

Mount your local Go code into a container's $GOPATH to run any go command or one of the included tools or scripts. Here's an example of running ginko for deis/builder:

$ docker run --rm \
  --volume $GOPATH/src/github.com/deis/builder:/go/src/github.com/deis/builder \
  --workdir /go/src/github.com/deis/builder \
  quay.io/deis/go-dev:latest \
  ginkgo -r

Releases

The latest deis/go-dev Docker image is available at:

To publish a new release of deis/go-dev, use the deisrel tool:

$ deisrel release docker-go-dev v1.28.7
Doing a dry run of the component release...

Creating changelog for docker-go-dev with tag v1.28.6 through commit 1a69c5502ef1bca014fbd3581451d1421829a42f


### v1.28.6 -> v1.28.7
...

If the CHANGELOG contents look correct, run the same command again but add the argument --dry-run=false. You will be prompted to confirm again before any tag or release is written to GitHub.