thockin/go-build-template

A Makefile/Dockerfile example for Go projects.

View on GitHub ↗Jump to charts ↓

Summary Information

Updated 22 minutes ago
Added to GitGenius on September 20th, 2026
Created on September 21st, 2016
Open Issues & Pull Requests: 8 (+0)
GitHub issues: Enabled
Number of forks: 425
Total Stargazers: 3,334 (+0)
Total Subscribers: 49 (+0)

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 2
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 528 days
Stale 30+ days: 2
Stale 90+ days: 2

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

No label distribution available yet.

Most active issues this week

No issue events were indexed in the last 7 days.

Detailed Description

Go Build Template is a Makefile and Dockerfile skeleton for Go applications that demonstrates best practices for building, testing, and containerizing Go projects.

The template addresses the problem of establishing consistent, reproducible build processes across Go projects. It uses a Makefile as the universal build interface and Docker buildx for multi-platform container image construction. The approach centralizes build logic in a single Makefile that drives compilation, testing, linting, and container image creation, while a templated Dockerfile handles the containerization step. The build system supports multi-architecture compilation and can automatically version images based on git tags and repository state.

The template suits teams building containerized Go applications that need to support multiple platforms. Customization requires changing the binary names in the Makefile, updating the Docker registry, selecting a versioning strategy, and modifying the module name in go.mod. The template includes optional tooling for license checking and linting via golangci-lint, which can be removed if not needed. It assumes Go modules for dependency management and requires Docker buildx to be installed. The template has only been tested on Linux.

The project shows minimal ongoing development activity, with infrequent commits and no recent updates to core functionality. Issues and pull requests receive responses but at a slow pace, suggesting the maintainer treats this primarily as a reference implementation rather than an actively evolving tool. The codebase remains stable with no breaking changes introduced over time.