Files
gorunner/README.md
2025-06-06 17:33:37 +02:00

89 lines
2.9 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 🐳 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
```bash
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`:
```yaml
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:
```bash
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](https://hub.docker.com/r/tordarus/gorunner)**
---
## 🔗 Source Repository
View the source code:
👉 [https://git.tordarus.net/tordarus/gorunner](https://git.tordarus.net/tordarus/gorunner)
Found a bug or have an idea for improvement?
🛠️ [Create an issue](https://git.tordarus.net/tordarus/gorunner/issues) in the repository.
---
## 📄 License
MIT License feel free to modify and use.