scripts | ||
.drone.yml | ||
.gitignore | ||
.markdownlint.json | ||
.yamllint | ||
action.yml | ||
build_multiarch.sh | ||
build.sh | ||
Dockerfile | ||
entrypoint.sh | ||
README.md |
Go ToolBox
Docker image with everything you might need for developing apps in Go.
What's inside
Debian 12 (slim) is used as base image.
Binary | Version | Project | Repo |
---|---|---|---|
go |
1.22.5 | Go | |
golangci-lint |
1.59.1 | golangci-lint | External link |
gofumpt |
0.6.0 | gofumpt | External link |
mockery_v2 |
2.43.2 | mockery | External link |
task |
3.38.0 | taskfile | External link |
go-junit-report |
2.1.0 | go-junit-report | External link |
delve |
1.22.1 | delve | External link |
Multiarch support
This image contains versions for both amd64 (AMD/Intel CPUs and their clones) and arm64 (Rockchips, Apple Silicon and so on).
Note, that amd64 image built on my CI server, while arm64 image I building on my local machine with built_multiarch.sh
for each published tag. It is because I have no separate arm64 machine (yet) and it's emulation on my server's CPU is freaking
slow (imagine Linux installation is going for three whole hours!).
HOME
Home directory is /home/container
.
Caching
Go's build cache resides in /home/container/.cache
, GOCACHE
environment variable is defined. You can mount it when needed in Dockerfile as:
RUN --mount=type=cache,target="$GOCACHE" go build
Utilities examples
JUnit report generation (for Gitlab)
go test -v 2>&1 ./... | go-junit-report -set-exit-code > unit-report.xml