diff --git a/Dockerfile.android b/Dockerfile.android index c6d85b0..7d1c8fb 100644 --- a/Dockerfile.android +++ b/Dockerfile.android @@ -1,5 +1,6 @@ -ARG mono_version -FROM godot-mono:${mono_version} +ARG img_version +FROM godot-mono:${img_version} + ARG mono_version RUN if [ -z "${mono_version}" ]; then echo -e "\n\nargument mono-version is mandatory!\n\n"; exit 1; fi && \ diff --git a/Dockerfile.export b/Dockerfile.export index 6dd152b..e839f15 100644 --- a/Dockerfile.export +++ b/Dockerfile.export @@ -1,4 +1,5 @@ -FROM godot-fedora:latest +ARG img_version +FROM godot-fedora:${img_version} RUN dnf -y install --setopt=install_weak_deps=False \ xorg-x11-server-Xvfb mesa-dri-drivers libXcursor libXinerama libXrandr libXi alsa-lib pulseaudio-libs java-1.8.0-openjdk-devel && \ diff --git a/Dockerfile.ios b/Dockerfile.ios index 7d1bf2c..f67f0a7 100644 --- a/Dockerfile.ios +++ b/Dockerfile.ios @@ -1,4 +1,5 @@ -FROM godot-fedora:latest +ARG img_version +FROM godot-fedora:${img_version} RUN dnf -y install --setopt=install_weak_deps=False \ automake autoconf clang gcc gcc-c++ gcc-objc gcc-objc++ cmake libicu-devel libtool libxml2-devel llvm-devel openssl-devel perl python yasm && \ diff --git a/Dockerfile.javascript b/Dockerfile.javascript index 5ca876e..5e702c7 100644 --- a/Dockerfile.javascript +++ b/Dockerfile.javascript @@ -1,5 +1,6 @@ -ARG mono_version -FROM godot-mono:${mono_version} +ARG img_version +FROM godot-mono:${img_version} + ARG mono_version RUN dnf -y install --setopt=install_weak_deps=False \ diff --git a/Dockerfile.mono b/Dockerfile.mono index 85b3516..d64dc2c 100644 --- a/Dockerfile.mono +++ b/Dockerfile.mono @@ -1,4 +1,5 @@ -FROM godot-fedora:latest +ARG img_version +FROM godot-fedora:${img_version} ARG mono_version diff --git a/Dockerfile.mono-glue b/Dockerfile.mono-glue index 122e29e..72b3659 100644 --- a/Dockerfile.mono-glue +++ b/Dockerfile.mono-glue @@ -1,5 +1,6 @@ -ARG mono_version -FROM godot-mono:${mono_version} +ARG img_version +FROM godot-mono:${img_version} + ARG mono_version RUN dnf -y install --setopt=install_weak_deps=False \ diff --git a/Dockerfile.msvc b/Dockerfile.msvc index ffdea6d..8c04114 100644 --- a/Dockerfile.msvc +++ b/Dockerfile.msvc @@ -1,6 +1,8 @@ -FROM godot-fedora:latest +ARG img_version +FROM godot-fedora:${img_version} ENV WINEDEBUG=-all + RUN dnf -y install --setopt=install_weak_deps=False \ wine winetricks xorg-x11-server-Xvfb p7zip-plugins findutils && \ dnf clean all && \ diff --git a/Dockerfile.osx b/Dockerfile.osx index 5ff3cce..ae15b43 100644 --- a/Dockerfile.osx +++ b/Dockerfile.osx @@ -1,5 +1,6 @@ -ARG mono_version -FROM godot-mono:${mono_version} +ARG img_version +FROM godot-mono:${img_version} + ARG mono_version RUN if [ -z "${mono_version}" ]; then echo -e "\n\nargument mono-version is mandatory!\n\n"; exit 1; fi && \ diff --git a/Dockerfile.windows b/Dockerfile.windows index 3ec83a6..912081c 100644 --- a/Dockerfile.windows +++ b/Dockerfile.windows @@ -1,5 +1,6 @@ -ARG mono_version -FROM godot-mono:${mono_version} +ARG img_version +FROM godot-mono:${img_version} + ARG mono_version RUN if [ -z "${mono_version}" ]; then echo -e "\n\nargument mono-version is mandatory!\n\n"; exit 1; fi && \ diff --git a/Dockerfile.xcode b/Dockerfile.xcode index 417c05d..9de06fc 100644 --- a/Dockerfile.xcode +++ b/Dockerfile.xcode @@ -1,4 +1,4 @@ -FROM godot-fedora:latest +FROM godot-fedora:${img_version} RUN dnf -y install --setopt=install_weak_deps=False \ autoconf automake libtool clang cmake fuse fuse-devel libxml2-devel libicu-devel compat-openssl10-devel bzip2-devel kmod cpio && \ diff --git a/build.sh b/build.sh index 21c90f8..f5e1ba3 100755 --- a/build.sh +++ b/build.sh @@ -26,18 +26,21 @@ img_version=$godot_branch-$mono_version mkdir -p logs -$podman build -t godot-fedora:${godot_branch} -f Dockerfile.base . 2>&1 | tee logs/base.log -$podman build -t godot-export:${godot_branch} -f Dockerfile.export . 2>&1 | tee logs/export.log +export podman_build="$podman build --build-arg img_version=${img_version}" +export podman_build_mono="$podman_build --build-arg mono_version=${mono_version}" -$podman build --build-arg mono_version=${mono_version} -t godot-mono:${img_version} -f Dockerfile.mono . 2>&1 | tee logs/mono.log -$podman build --build-arg mono_version=${mono_version} -t godot-mono-glue:${img_version} -f Dockerfile.mono-glue . 2>&1 | tee logs/mono-glue.log -$podman build --build-arg mono_version=${mono_version} -v $(pwd)/files:/root/files -t godot-windows:${img_version} -f Dockerfile.windows . 2>&1 | tee logs/windows.log -$podman build --build-arg mono_version=${mono_version} -t godot-ubuntu-64:${img_version} -f Dockerfile.ubuntu-64 . 2>&1 | tee logs/ubuntu-64.log -$podman build --build-arg mono_version=${mono_version} -t godot-ubuntu-32:${img_version} -f Dockerfile.ubuntu-32 . 2>&1 | tee logs/ubuntu-32.log -$podman build --build-arg mono_version=${mono_version} -t godot-android:${img_version} -f Dockerfile.android . 2>&1 | tee logs/android.log -$podman build --build-arg mono_version=${mono_version} -v $(pwd)/files:/root/files -t godot-javascript:${img_version}-upstream -f Dockerfile.javascript . 2>&1 | tee logs/javascript.log +$podman_build -t godot-fedora:${img_version} -f Dockerfile.base . 2>&1 | tee logs/base.log +$podman_build -t godot-export:${img_version} -f Dockerfile.export . 2>&1 | tee logs/export.log -$podman build -t godot-xcode-packer:${godot_branch} -f Dockerfile.xcode -v $(pwd)/files:/root/files . 2>&1 | tee logs/xcode.log +$podman_build_mono -t godot-mono:${img_version} -f Dockerfile.mono . 2>&1 | tee logs/mono.log +$podman_build_mono -t godot-mono-glue:${img_version} -f Dockerfile.mono-glue . 2>&1 | tee logs/mono-glue.log +$podman_build_mono -v $(pwd)/files:/root/files -t godot-windows:${img_version} -f Dockerfile.windows . 2>&1 | tee logs/windows.log +$podman_build_mono -t godot-ubuntu-64:${img_version} -f Dockerfile.ubuntu-64 . 2>&1 | tee logs/ubuntu-64.log +$podman_build_mono -t godot-ubuntu-32:${img_version} -f Dockerfile.ubuntu-32 . 2>&1 | tee logs/ubuntu-32.log +$podman_build_mono -t godot-android:${img_version} -f Dockerfile.android . 2>&1 | tee logs/android.log +$podman_build_mono -v $(pwd)/files:/root/files -t godot-javascript:${img_version}-upstream -f Dockerfile.javascript . 2>&1 | tee logs/javascript.log + +$podman_build -t godot-xcode-packer:${img_version} -f Dockerfile.xcode -v $(pwd)/files:/root/files . 2>&1 | tee logs/xcode.log if [ ! -e files/MacOSX10.14.sdk.tar.xz ] || [ ! -e files/iPhoneOS12.4.sdk.tar.xz ] || [ ! -e files/iPhoneSimulator12.4.sdk.tar.xz ]; then if [ ! -e files/Xcode_10.3.xip ]; then @@ -46,11 +49,11 @@ if [ ! -e files/MacOSX10.14.sdk.tar.xz ] || [ ! -e files/iPhoneOS12.4.sdk.tar.xz fi echo "Building OSX and iOS SDK packages. This will take a while" - $podman run -it --rm -v $(pwd)/files:/root/files godot-xcode-packer:${godot_branch} 2>&1 | tee logs/xcode_packer.log + $podman run -it --rm -v $(pwd)/files:/root/files godot-xcode-packer:${img_version} 2>&1 | tee logs/xcode_packer.log fi -$podman build -t godot-ios:${img_version} -f Dockerfile.ios -v $(pwd)/files:/root/files . 2>&1 | tee logs/ios.log -$podman build --build-arg mono_version=${mono_version} -t godot-osx:${img_version} -f Dockerfile.osx -v $(pwd)/files:/root/files . 2>&1 | tee logs/osx.log +$podman_build -t godot-ios:${img_version} -f Dockerfile.ios -v $(pwd)/files:/root/files . 2>&1 | tee logs/ios.log +$podman_build_mono -t godot-osx:${img_version} -f Dockerfile.osx -v $(pwd)/files:/root/files . 2>&1 | tee logs/osx.log if [ ! -e files/msvc2017.tar ]; then echo @@ -64,4 +67,4 @@ if [ ! -e files/msvc2017.tar ]; then exit 1 fi -$podman build -t godot-msvc:${img_version} -f Dockerfile.msvc -v $(pwd)/files:/root/files . 2>&1 | tee logs/msvc.log +$podman_build -t godot-msvc:${img_version} -f Dockerfile.msvc -v $(pwd)/files:/root/files . 2>&1 | tee logs/msvc.log