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
mockgentool for generating mocks for testing - Formatting and validating Go source files imports with the
goimportstool - Formatting and validating Go source files format with the
gofmttool - Validating Go source files errors with the
errchecktool - Linting Go source files with the
revive, thegolangci-lintand thegolinttools - 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
colordifftool - Colorizing Go tests with the
richgotool - Colorizing Go coverage results and format nicely with the
columntool - Generating static HTML coverage report with the
go tool covertool
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)