improved readme and added license
This commit is contained in:
		
							
								
								
									
										21
									
								
								LICENSE
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								LICENSE
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,21 @@
 | 
			
		||||
MIT License
 | 
			
		||||
 | 
			
		||||
Copyright (c) 2025 Tordarus
 | 
			
		||||
 | 
			
		||||
Permission is hereby granted, free of charge, to any person obtaining a copy
 | 
			
		||||
of this software and associated documentation files (the "Software"), to deal
 | 
			
		||||
in the Software without restriction, including without limitation the rights  
 | 
			
		||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell      
 | 
			
		||||
copies of the Software, and to permit persons to whom the Software is         
 | 
			
		||||
furnished to do so, subject to the following conditions:                       
 | 
			
		||||
 | 
			
		||||
The above copyright notice and this permission notice shall be included in    
 | 
			
		||||
all copies or substantial portions of the Software.                            
 | 
			
		||||
 | 
			
		||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR    
 | 
			
		||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,      
 | 
			
		||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE   
 | 
			
		||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER        
 | 
			
		||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 
 | 
			
		||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN     
 | 
			
		||||
THE SOFTWARE.
 | 
			
		||||
							
								
								
									
										78
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										78
									
								
								README.md
									
									
									
									
									
								
							@ -2,42 +2,86 @@
 | 
			
		||||
 | 
			
		||||
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 (`amd64`, `arm64`).
 | 
			
		||||
 | 
			
		||||
🏗️ **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
 | 
			
		||||
- ✅ Multi-architecture: `linux/amd64`, `linux/arm64`
 | 
			
		||||
- ✅ Minimal and reproducible container setup
 | 
			
		||||
* ✅ Clones a Go repository at runtime
 | 
			
		||||
* ✅ Supports **private Git repositories** using `.netrc`-based auth
 | 
			
		||||
* ✅ Builds and runs your Go application
 | 
			
		||||
* ✅ Multi-architecture: `linux/amd64`, `linux/arm64`
 | 
			
		||||
* ✅ Minimal and reproducible container setup with Alpine Linux
 | 
			
		||||
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
## 🧪 Example Usage
 | 
			
		||||
 | 
			
		||||
### 🐚 Docker CLI
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
docker run --rm \
 | 
			
		||||
  -e GIT_REPO=https://github.com/youruser/your-go-app.git \
 | 
			
		||||
  -e GIT_USERNAME=yourusername \
 | 
			
		||||
  -e GIT_TOKEN=yourtoken \
 | 
			
		||||
  gorunner:latest
 | 
			
		||||
  tordarus/gorunner:latest
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### 🐳 Docker Compose
 | 
			
		||||
 | 
			
		||||
Create a `docker-compose.yml`:
 | 
			
		||||
 | 
			
		||||
```yaml
 | 
			
		||||
version: "3.9"
 | 
			
		||||
services:
 | 
			
		||||
  gorunner:
 | 
			
		||||
    image: tordarus/gorunner:latest
 | 
			
		||||
    environment:
 | 
			
		||||
      GIT_REPO: https://github.com/youruser/your-go-app.git
 | 
			
		||||
      GIT_USERNAME: yourusername   # Optional for public repos
 | 
			
		||||
      GIT_TOKEN: yourtoken         # Optional for public repos
 | 
			
		||||
      APP_PATH: .                  # Optional
 | 
			
		||||
      PACKAGES: curl               # Optional
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
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_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 |
 | 
			
		||||
| Variable       | Required | Description                                                             |
 | 
			
		||||
| -------------- | -------- | ----------------------------------------------------------------------- |
 | 
			
		||||
| `GIT_REPO`     | ✅ Yes    | The HTTPS Git URL of your Go project                                    |
 | 
			
		||||
| `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.
 | 
			
		||||
 | 
			
		||||
## 📦 Repository
 | 
			
		||||
 | 
			
		||||
You can find the code for this image at [https://git.tordarus.net/tordarus/gorunner](https://git.tordarus.net/tordarus/gorunner)
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user