]> Untitled Git - godot.git/commitdiff
Dockerized it
authorClifton Palmer <clifton.james.palmer@protonmail.com>
Sun, 9 Mar 2025 12:06:48 +0000 (07:06 -0500)
committerClifton Palmer <clifton.james.palmer@protonmail.com>
Sun, 9 Mar 2025 12:25:41 +0000 (07:25 -0500)
.gitignore
Dockerfile [new file with mode: 0644]
docker-compose.yml [new file with mode: 0644]
script.sh

index 84fd956c5cb420332830975a566bc9dc8f3f1fcb..db505ae304a34d89364f906442d63194faf9f527 100644 (file)
@@ -1,5 +1,3 @@
-download/
 project/
-debug/
-release/
+build/
 *.swp
diff --git a/Dockerfile b/Dockerfile
new file mode 100644 (file)
index 0000000..8499cbe
--- /dev/null
@@ -0,0 +1,19 @@
+FROM ubuntu:22.04
+
+ARG GODOT_VERSION="4.4"
+
+# Install Godot & templates
+RUN apt update -y && apt install -y wget unzip fontconfig
+RUN wget https://github.com/godotengine/godot/releases/download/${GODOT_VERSION}-stable/Godot_v${GODOT_VERSION}-stable_linux.x86_64.zip \
+    && wget https://github.com/godotengine/godot/releases/download/${GODOT_VERSION}-stable/Godot_v${GODOT_VERSION}-stable_export_templates.tpz \
+    && mkdir -p ~/.cache ~/.config/godot ~/.local/share/godot/export_templates/${GODOT_VERSION}.stable \
+    && unzip Godot_v${GODOT_VERSION}-stable_linux*.zip \
+    && mv Godot_v${GODOT_VERSION}-stable_linux*64 /usr/local/bin/godot \
+    && unzip Godot_v${GODOT_VERSION}-stable_export_templates.tpz \
+    && mv templates/* ~/.local/share/godot/export_templates/${GODOT_VERSION}.stable \
+    && rm Godot_v${GODOT_VERSION}-stable_export_templates.tpz Godot_v${GODOT_VERSION}-stable_linux*.zip
+
+# Build application
+WORKDIR /app
+
+ENTRYPOINT [ "godot" ]
diff --git a/docker-compose.yml b/docker-compose.yml
new file mode 100644 (file)
index 0000000..c680cb3
--- /dev/null
@@ -0,0 +1,5 @@
+version: '3'
+services:
+    godot:
+        build: .
+        image: cjpalmer/godot:0.1.0
index 75f2dfd6455c5b663dab522d4b2121b7798c539a..f1c0c39f3241fd8b2a2e87966c8aa57d324b5f32 100755 (executable)
--- a/script.sh
+++ b/script.sh
@@ -1,60 +1,23 @@
 #!/bin/bash
 
-# gets a Godot release, fetches export templates, 
-# and builds a project with its native export options
-
+# builds a Godot project with all its native export config options
 ################################################################################
-PWD=`pwd`
-DIR_DOWNLOAD=$PWD/download
-DIR_TEMPLATES=$DIR_DOWNLOAD/templates
-DIR_DEBUG=$PWD/debug
-DIR_RELEASE=$PWD/release
-DIR_PROJECT=$PWD/project
-
-GODOT_VERSION=4.4-stable
-GODOT_ZIP=Godot_v${GODOT_VERSION}_linux.x86_64.zip
-GODOT_EXE=Godot_v${GODOT_VERSION}_linux.x86_64
-GODOT_URI=https://github.com/godotengine/godot/releases/download/$GODOT_VERSION/$GODOT_ZIP
-
-GODOT_EXPORT_TEMPLATES=Godot_v${GODOT_VERSION}_export_templates.tpz
-GODOT_TEMPLATE_URI=https://github.com/godotengine/godot/releases/download/$GODOT_VERSION/$GODOT_EXPORT_TEMPLATES
-
-GODOT=$DIR_DOWNLOAD/$GODOT_EXE
 
-################################################################################
-# get Godot
+DIR_BUILD=`pwd`/build
+DIR_DEBUG=$DIR_BUILD/debug
+DIR_RELEASE=$DIR_BUILD/release
+DIR_PROJECT=`pwd`/project
 
-[[ -d $DIR_DOWNLOAD ]] || mkpath -p $DIR_DOWNLOAD 
-[[ -f $DIR_DOWNLOAD/$GODOT_ZIP ]] || wget -P $DIR_DOWNLOAD $GODOT_URI
-[[ -f $DIR_DOWNLOAD/$GODOT_EXE ]] || unzip $DIR_DOWNLOAD/$GODOT_ZIP -d $DIR_DOWNLOAD
+GODOT="docker run -v${DIR_PROJECT}:${DIR_PROJECT} -v${DIR_BUILD}:${DIR_BUILD} cjpalmer/godot:0.1.0"
+GODOT_OPTS="--headless --path $DIR_PROJECT"
+EXPORT_PRESETS_CFG="$DIR_PROJECT/export_presets.cfg"
 
 echo Godot version - $($GODOT --headless --version)
 
-################################################################################
-# get export templates
-
-[[ -f $DIR_DOWNLOAD/$GODOT_EXPORT_TEMPLATES ]] || wget -P $DIR_DOWNLOAD $GODOT_TEMPLATE_URI
-[[ -d $DIR_TEMPLATES ]] || unzip -d $DIR_DOWNLOAD $DIR_DOWNLOAD/$GODOT_EXPORT_TEMPLATES
-
-GODOT_TEMPLATE_VERSION=$(cat $DIR_TEMPLATES/version.txt)
-LOCAL_TEMPLATES=$HOME/.local/share/godot/export_templates/$GODOT_TEMPLATE_VERSION
-if [[ ! -d $LOCAL_TEMPLATES ]]
-then
-    mkdir -p $LOCAL_TEMPLATES
-    cp $DIR_TEMPLATES/* $LOCAL_TEMPLATES
-    # TODO: leaves extra copy of templates
-fi
-
-echo Godot export template version - $GODOT_TEMPLATE_VERSION
-echo Local templates - $LOCAL_TEMPLATES
-
 ################################################################################
 # execute project build
 
 # iterate through all build types present in config file
-EXPORT_PRESETS_CFG=$DIR_PROJECT/export_presets.cfg
-GODOT_OPTS="--headless --path $DIR_PROJECT"
-
 # if arg is given, override automated export discovery
 if [[ -n "$1" ]]
 then