A Docker image with preinstalled tools for developing, mocking, formatting, linting, building, testing and documenting Go projects.
- Pre-installed required tools for developing, mocking, 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 - Formatting and validating Go source files line lengths with the
golines
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
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-mock
command to create mocks for all automatically detected Go interfaces:
./docker-run.sh go-mock
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
❗ Notice ❗
To fix Go source code formatting errors from Go linter tools,
use the ./docker-run.sh go-format
script for that.
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
Use the go-test-no-cover
command to run tests without coverage:
./docker-run.sh go-test-no-cover
To run only a single test:
./docker-run.sh go-test -run <TestName> ./...
Running only a single test without coverage:
./docker-run.sh go-test-no-cover -run <TestName> ./...
Use the go-doc
command to run Go source code documentation server for your project on default localhost:6060
:
./docker-run.sh go-doc
❗ Notice ❗
It can take some time before server will process all source code files for browsing. Wait several seconds more and refresh your web browser.
All commands accept standard Go paths as additional arguments like ./
, ./...
, ./<path>
and so on.