Docker Go
A Docker image with preinstalled tools for developing, formatting, linting,
building, testing and documenting Go projects.
Project site: https://gitlab.com/tymonx/docker-go
For GitLab CI: https://gitlab.com/tymonx/gitlab-ci
Features
- Pre-installed required tools for developing, formatting, linting, building, testing and documenting Go projects
- Pre-installed the
mockgen
tool for generating mocks for testing - Formatting and validating Go source files imports with the
goimports
tool - Formatting and validating Go source files format with the
gofmt
tool - Validating Go source files errors with the
errcheck
tool - Linting Go source files with the
revive
, thegolangci-lint
and thegolint
tools - Building Go source files
- Testing Go project
- Generating Go coverage result, text and HTML reports
- Generating JUnit test XML report for GitLab Merge Requests
- Generating Cobertura coverage XML report for GitLab Merge Requests
- Validating Go coverage value threshold with colorization
- Colorizing Go imports and format validation with the
colordiff
tool - Colorizing Go tests with the
richgo
tool - Colorizing Go coverage results and format nicely with the
column
tool - Generating static HTML coverage report with the
go tool cover
tool
Usage
Download the docker-run.sh
helper script:
wget -O docker-run.sh https://gitlab.com/tymonx/docker-go/-/raw/master/docker-run.sh
Make it executable:
chmod a+x ./docker-run.sh
Run the docker-run.sh
script without any arguments to work in Docker container:
./docker-run.sh
Or pass arguments to the docker-run.sh
script to execute commands inside Docker container:
./docker-run.sh go build ./...
Use the go-format
command to automatically reformat Go source files:
./docker-run.sh go-format
Use the go-lint
command to run various Go linters on Go source files with enabled colorization:
./docker-run.sh go-lint
Use the go-build
command to build Go source files. Equivalent to the go build ./...
execution:
./docker-run.sh go-build
Use the go-test
command to run tests and validate coverage result with enabled colorization:
./docker-run.sh go-test
All commands accept standard Go paths as additional arguments like ./
, ./...
, <package-name>
and so on.
Top comments (0)