From a3f0fb7fa60b2ea297130f2f9d9b7461b4c7ca06 Mon Sep 17 00:00:00 2001 From: wg1337 <62715122+wg1337@users.noreply.github.com> Date: Mon, 31 Aug 2026 19:24:02 +0300 Subject: [PATCH] Add podman support for containers --- docker/build.sh | 21 ++++++++++++++++----- docker/run.sh | 17 ++++++++++++++--- 2 files changed, 30 insertions(+), 8 deletions(-) diff --git a/docker/build.sh b/docker/build.sh index 911c0d053..8d376abab 100755 --- a/docker/build.sh +++ b/docker/build.sh @@ -24,8 +24,18 @@ [[ -z "$TARGET_BUILD_ARCH" ]] \ && target_build_arch=x86 \ || target_build_arch="$TARGET_BUILD_ARCH" +# Available container runtimes: [docker], podman, other +[[ -z "$CONTAINER_RUNTIME" ]] \ +&& container_runtime=docker \ +|| container_runtime="$CONTAINER_RUNTIME" +[[ "$container_runtime" == "podman" ]] \ +&& volume_suffix=":Z" \ +|| volume_suffix="" +[[ "$container_runtime" == "podman" ]] \ +&& userns_option="--userns=keep-id" \ +|| userns_option="" -docker build \ +$container_runtime build \ -t open.mp/build:ubuntu-${ubuntu_version} \ build_ubuntu-${ubuntu_version}/ \ || exit 1 @@ -38,13 +48,14 @@ for folder in "${folders[@]}"; do sudo chown -R 1000:1000 ${folder} || exit 1 done -docker run \ +$container_runtime run \ --rm \ -t \ + $userns_option \ -w /code \ - -v $PWD/..:/code \ - -v $PWD/build:/code/build \ - -v $PWD/conan2:/home/user/.conan2 \ + -v $PWD/..:/code${volume_suffix} \ + -v $PWD/build:/code/build${volume_suffix} \ + -v $PWD/conan2:/home/user/.conan2${volume_suffix} \ -e CONFIG=${config} \ -e TARGET_BUILD_ARCH=${target_build_arch} \ -e BUILD_SHARED=${build_shared} \ diff --git a/docker/run.sh b/docker/run.sh index 3c6b1e039..a15019aa2 100755 --- a/docker/run.sh +++ b/docker/run.sh @@ -8,6 +8,16 @@ [[ -z "$UBUNTU_VERSION" ]] \ && ubuntu_version=22.04 \ || ubuntu_version="$UBUNTU_VERSION" +# Available container runtimes: [docker], podman, other +[[ -z "$CONTAINER_RUNTIME" ]] \ +&& container_runtime=docker \ +|| container_runtime="$CONTAINER_RUNTIME" +[[ "$container_runtime" == "podman" ]] \ +&& volume_suffix=":Z" \ +|| volume_suffix="" +[[ "$container_runtime" == "podman" ]] \ +&& userns_option="--userns=keep-id" \ +|| userns_option="" omp_path="build/Output/${config}/Server" @@ -25,7 +35,7 @@ if [ $? -ne 0 ]; then exit 1 fi -docker build \ +$container_runtime build \ -t open.mp/run:ubuntu-${ubuntu_version} \ run_ubuntu-${ubuntu_version}/ \ ; @@ -39,11 +49,12 @@ fi [ ! -d './data' ] && mkdir data -docker run \ +$container_runtime run \ --rm \ -ti \ + $userns_option \ -w /data \ - -v $PWD/data:/data \ + -v $PWD/data:/data${volume_suffix} \ -p 7777:7777 \ -p 7777:7777/udp \ open.mp/run:ubuntu-${ubuntu_version}