This commit is contained in:
63
README.md
Normal file
63
README.md
Normal file
@ -0,0 +1,63 @@
|
||||
# 🏗️ Godot Builder Image
|
||||
This repository contains the `Dockerfile` definition for a custom build container used by our Gitea Runners.
|
||||
|
||||
It is designed to cross-compile Godot Engine and GDExtension projects for **Linux (x86_64)** and **Windows (x86_64/MinGW)**.
|
||||
|
||||
## 📦 What's Inside?
|
||||
The image is based on Fedora 39 (to ensure up-to-date MinGW packages) and includes:
|
||||
|
||||
- Build Systems: `SCons`, `Make`, `Automake`, `Git`
|
||||
|
||||
- Compilers: `GCC (Linux)`, `MinGW-w64` (Windows Cross-compile), `Yasm`
|
||||
|
||||
- Godot Dependencies: `X11`, `Mesa (GL)`, `ALSA`, `PulseAudio`, `uDev`
|
||||
|
||||
## 🚀 How to Build & Publish
|
||||
This process is automated.
|
||||
|
||||
1. **Modify**: Make changes to the Dockerfile if you need new dependencies (e.g., Python, newer GCC).
|
||||
|
||||
- **Push**: Commit and push your changes to the `main` branch.
|
||||
|
||||
```
|
||||
Bash
|
||||
|
||||
git add Dockerfile
|
||||
git commit -m "Update builder dependencies"
|
||||
git push origin main
|
||||
```
|
||||
3. **Watch**: Go to the **Actions** tab in Gitea to see the build progress.
|
||||
|
||||
4. **Verify**: Once green, go to your **Profile > Packages** tab. You should see a new version of `godot-builder` tagged `latest`.
|
||||
|
||||
## 🛠 Manual Usage (Local Testing)
|
||||
If you need to test this image locally before pushing:
|
||||
|
||||
```
|
||||
Bash
|
||||
|
||||
# Build locally
|
||||
docker build -t godot-builder:local .
|
||||
|
||||
# Test compiling a project locally
|
||||
|
||||
docker run --rm -v $(pwd):/workspace -w /workspace godot-builder:local \
|
||||
scons platform=linux target=template_debug
|
||||
```
|
||||
|
||||
## 📄 Dockerfile Reference
|
||||
```Dockerfile
|
||||
|
||||
FROM fedora:39
|
||||
|
||||
# Install Build Tools & Cross-Compilers
|
||||
RUN dnf -y install \
|
||||
git scons make automake which yasm \
|
||||
gcc gcc-c++ kernel-headers \
|
||||
mingw64-gcc mingw64-gcc-c++ mingw64-winpthreads-static \
|
||||
libX11-devel libXcursor-devel libXrandr-devel libXinerama-devel libXi-devel \
|
||||
mesa-libGL-devel alsa-lib-devel pulseaudio-libs-devel libudev-devel \
|
||||
&& dnf clean all
|
||||
|
||||
CMD ["/bin/bash"]
|
||||
```
|
||||
Reference in New Issue
Block a user