🐳 Go Builder & Runner Docker Image
This Docker image is designed to download, compile, and run a Go program from a Git repository entirely at container runtime. It supports both public and private repositories and works seamlessly across multiple architectures.
🏗️ Built on Alpine Linux for a minimal, efficient footprint.
✅ Features
- ✅ Clones a Go repository at runtime
- ✅ Supports private Git repositories using
.netrc
-based auth - ✅ Builds and runs your Go application
- ✅ Supports checking out a specific branch, tag, or commit via
GIT_REF
- ✅ Multi-architecture:
linux/amd64
,linux/arm64
,linux/arm/v7
- ✅ Minimal and reproducible container setup with Alpine Linux
🧪 Example Usage
🐚 Docker CLI
docker run --rm \
-e GIT_REPO=https://git.tordarus.net/tordarus/hello-world.git \
-e GIT_REF=main \
tordarus/gorunner:latest
🐳 Docker Compose
Create a docker-compose.yml
:
version: "3.9"
services:
gorunner:
image: tordarus/gorunner:latest
environment:
GIT_REPO: https://git.tordarus.net/tordarus/hello-world.git
GIT_REF: main # Optional – specify branch, tag, or commit
GIT_USERNAME: yourusername # Optional for public repos
GIT_TOKEN: yourtoken # Optional for public repos
APP_PATH: . # Optional – subdir of Go app
PACKAGES: curl # Optional – comma-separated apk packages
Then run it with:
docker compose up
🔧 Environment Variables
Variable | Required | Description |
---|---|---|
GIT_REPO |
✅ Yes | The HTTPS Git URL of your Go project |
GIT_REF |
Optional | Branch name, tag, or commit hash to checkout after clone (default: HEAD) |
GIT_USERNAME |
Optional | Your Git username (required for private repos) |
GIT_TOKEN |
Optional | A personal access token or password (required for private repos) |
APP_PATH |
Optional | Relative path to the Go module directory inside the repo (default: . ) |
PACKAGES |
Optional | Comma-separated list of packages to install with apk before execution |
📦 Docker Hub
👉 Pull the image from Docker Hub: tordarus/gorunner
🔗 Source Repository
View the source code: 👉 https://git.tordarus.net/tordarus/gorunner
Found a bug or have an idea for improvement? 🛠️ Create an issue in the repository.
📄 License
MIT License – feel free to modify and use.
Languages
Shell
80.6%
Dockerfile
19.4%