diff --git a/Makefile b/Makefile index 4efaf825..1e072576 100644 --- a/Makefile +++ b/Makefile @@ -222,6 +222,10 @@ pcommandbatch_speed_test: env # Prebuilt binaries for various platforms. +docker-linux-x86-64-server-release-build: + $(PCOMMAND) build_docker + + # WSL is Linux but running under Windows, so it can target either. By default # we want these top level targets (prefab-gui-debug, etc.) to yield native # Windows builds from WSL, but this env var can be set to override that. diff --git a/src/assets/docker/Dockerfile b/src/assets/docker/Dockerfile new file mode 100644 index 00000000..63723690 --- /dev/null +++ b/src/assets/docker/Dockerfile @@ -0,0 +1,32 @@ +FROM ubuntu:24.04 + +ENV LANG en_US.utf8 +ENV LANGUAGE=en_US +ARG BOMBSQUAD_VERSION=N/A + +ARG SOURCE_DIR=. + +RUN DEBIAN_FRONTEND=noninteractive \ + apt-get update -y && \ + apt-get install -y \ + python3.12-dev \ + libsdl2-dev \ + libvorbisfile3 \ + freeglut3-dev \ + libopenal-dev + +# Clean up +RUN apt-get clean && \ + rm -rf /var/lib/apt/lists/* /tmp/* + +WORKDIR ${SOURCE_DIR} + +COPY ${SOURCE_DIR} ./ + +LABEL bombsquad_version=$BOMBSQUAD_VERSION + +CMD [ "./ballisticakit_server" ] + +# this does not port forward locally +# its just a hint for user which port to forward +EXPOSE 43210/udp diff --git a/tools/batools/build.py b/tools/batools/build.py index bb0bf65c..a8e6a70d 100644 --- a/tools/batools/build.py +++ b/tools/batools/build.py @@ -644,3 +644,20 @@ def cmake_prep_dir(dirname: str, verbose: bool = False) -> None: else: if verbose: print(f'{Clr.BLD}{title}:{Clr.RST} Keeping existing build dir.') + +def _docker_build(image_name, + dockerfile_dir, + bombsquad_version, + source_dir) -> None: + + build_cmd = ['docker','image','build', + '-t',image_name, + dockerfile_dir, + '--build-arg', f'BOMBSQUAD_VERSION={bombsquad_version}', + '--build-arg', f'SOURCE_DIR={source_dir}'] + + subprocess.run(build_cmd,check=True) + +# add option to toggle between prefab and cmake +def docker_build() -> None: + _docker_build('bsquad','src/assets/docker/','1.7.69','build/prefab/full/linux_x86_64_server/release') \ No newline at end of file diff --git a/tools/batools/pcommandmain.py b/tools/batools/pcommandmain.py index b0790e27..581af8d8 100644 --- a/tools/batools/pcommandmain.py +++ b/tools/batools/pcommandmain.py @@ -104,6 +104,7 @@ from batools.pcommands import ( ensure_prefab_platform, prefab_run_var, prefab_binary_path, + build_docker, make_prefab, lazybuild, efro_gradle, diff --git a/tools/batools/pcommands.py b/tools/batools/pcommands.py index 6bc07aac..cad1fa63 100644 --- a/tools/batools/pcommands.py +++ b/tools/batools/pcommands.py @@ -666,6 +666,12 @@ def prefab_binary_path() -> None: end='', ) +def build_docker() -> None: + pass + import subprocess + import batools.build + batools.build.docker_build() + def make_prefab() -> None: """Run prefab builds for the current platform."""