# 🏗️ 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"] ```