# Quick Start Docker Images These Docker images are part of the quick start build environment. Documentation for developer reference only. To add another distribution; simply add a folder with a Dockerfile here or under `.nel/docker`, and re-run the quick start configure script. ## Prepare Ubuntu Just build the Docker images like this. The quick start scripts will generate the proper command line. ``` docker build -t "ryzombuild_bionic_x86_64" -f "Y:\ryzomcore4\code\tool\quick_start\docker\ryzombuild_bionic_x86_64\Dockerfile" Y:\ryzomcore4\code docker build -t "ryzombuild_bionic_gcc8_x86_64" -f "Y:\ryzomcore4\code\tool\quick_start\docker\ryzombuild_bionic_gcc8_x86_64\Dockerfile" Y:\ryzomcore4\code docker build -t "ryzombuild_focal_x86_64" -f "Y:\ryzomcore4\code\tool\quick_start\docker\ryzombuild_focal_x86_64\Dockerfile" Y:\ryzomcore4\code docker build -t "ryzombuild_scout_x86_64" -f "Y:\ryzomcore4\code\tool\quick_start\docker\ryzombuild_scout_x86_64\Dockerfile" Y:\ryzomcore4\code docker build -t "ryzombuild_scout_gcc5_x86_64" -f "Y:\ryzomcore4\code\tool\quick_start\docker\ryzombuild_scout_gcc5_x86_64\Dockerfile" Y:\ryzomcore4\code docker build -t "ryzombuild_scout_gcc9_x86_64" -f "Y:\ryzomcore4\code\tool\quick_start\docker\ryzombuild_scout_gcc9_x86_64\Dockerfile" Y:\ryzomcore4\code docker build -t "ryzombuild_scout_gcc9_x86" -f "Y:\ryzomcore4\code\tool\quick_start\docker\ryzombuild_scout_gcc9_x86\Dockerfile" Y:\ryzomcore4\code ``` ## Prepare Steam Runtime ``` cd /d Y:\ryzomcore4\.nel\temp ..\..\distribution\utils\aria2c https://repo.steampowered.com/steamrt-images-scout/snapshots/latest-steam-client-general-availability/com.valvesoftware.SteamRuntime.Sdk-amd64,i386-scout-sysroot.Dockerfile ..\..\distribution\utils\aria2c https://repo.steampowered.com/steamrt-images-scout/snapshots/latest-steam-client-general-availability/com.valvesoftware.SteamRuntime.Sdk-amd64,i386-scout-sysroot.tar.gz docker build --platform linux/amd64 -f com.valvesoftware.SteamRuntime.Sdk-amd64,i386-scout-sysroot.Dockerfile -t steamrt_scout_amd64:latest . del "com.valvesoftware.SteamRuntime.Sdk-amd64,i386-scout-sysroot.Dockerfile" del "com.valvesoftware.SteamRuntime.Sdk-amd64,i386-scout-sysroot.tar.gz" ``` ``` cd /d Y:\ryzomcore4\.nel\temp ..\..\distribution\utils\aria2c https://repo.steampowered.com/steamrt-images-scout/snapshots/latest-steam-client-general-availability/com.valvesoftware.SteamRuntime.Sdk-i386-scout-sysroot.Dockerfile ..\..\distribution\utils\aria2c https://repo.steampowered.com/steamrt-images-scout/snapshots/latest-steam-client-general-availability/com.valvesoftware.SteamRuntime.Sdk-i386-scout-sysroot.tar.gz docker build --platform linux/386 -f com.valvesoftware.SteamRuntime.Sdk-i386-scout-sysroot.Dockerfile -t steamrt_scout_i386:latest . del "com.valvesoftware.SteamRuntime.Sdk-i386-scout-sysroot.Dockerfile" del "com.valvesoftware.SteamRuntime.Sdk-i386-scout-sysroot.tar.gz" ``` ## Check CMake Version ``` docker run --rm ryzombuild_bionic_x86_64 cmake --version docker run --rm ryzombuild_focal_x86_64 cmake --version docker run --rm steamrt_scout_amd64 cmake --version ``` ## Check GCC Version ``` docker run --rm ryzombuild_bionic_x86_64 gcc -v docker run --rm ryzombuild_bionic_gcc8_x86_64 gcc -v docker run --rm ryzombuild_focal_x86_64 gcc -v docker run --rm ryzombuild_scout_x86_64 gcc -v docker run --rm ryzombuild_scout_gcc5_x86_64 gcc -v docker run --rm ryzombuild_scout_gcc9_x86_64 gcc -v docker run --rm ryzombuild_scout_gcc9_x86_64 cc -v docker run --rm ryzombuild_scout_gcc9_x86_64 c++ -v docker run --rm ryzombuild_scout_gcc9_x86 c++ -v ``` ## Build Client ``` docker run --rm -v ryzombuild_focal_x86_64_hunter:/root/.hunter --mount "type=bind,source=Y:\ryzomcore4,target=/mnt/nel" --workdir "/mnt/nel/build_client_focal" ryzombuild_focal_x86_64 cmake -G "Ninja" -DCMAKE_BUILD_TYPE=Release -DHUNTER_ENABLED=ON -DHUNTER_STATUS_DEBUG=ON -DHUNTER_JOBS_NUMBER=9 -DWITH_NEL_TESTS=OFF -DWITH_NEL_SAMPLES=OFF -DWITH_RYZOM=ON -DWITH_RYZOM_SERVER=OFF -DWITH_RYZOM_CLIENT=ON -DWITH_RYZOM_PATCH=ON -DWITH_RYZOM_TOOLS=OFF -DWITH_NEL_TOOLS=OFF -DWITH_NELNS=OFF -DWITH_QT5=OFF -DWITH_LIBGSF=OFF -DFINAL_VERSION=ON -DWITH_DRIVER_OPENGL=ON -DWITH_DRIVER_OPENAL=ON -DWITH_SSE3=OFF ../code docker run --rm -v ryzombuild_focal_x86_64_hunter:/root/.hunter --mount "type=bind,source=Y:\ryzomcore4,target=/mnt/nel" --workdir "/mnt/nel/build_client_focal" ryzombuild_focal_x86_64 ninja -j9 ``` ``` docker run --rm -v ryzombuild_bionic_x86_64_hunter:/root/.hunter --mount "type=bind,source=Y:\ryzomcore4,target=/mnt/nel" --workdir "/mnt/nel/build_client_bionic" ryzombuild_bionic_x86_64 cmake -G "Ninja" -DCMAKE_BUILD_TYPE=Release -DWITH_NEL_TESTS=OFF -DWITH_NEL_SAMPLES=OFF -DWITH_RYZOM=ON -DWITH_RYZOM_SERVER=OFF -DWITH_RYZOM_CLIENT=ON -DWITH_RYZOM_PATCH=ON -DWITH_RYZOM_TOOLS=OFF -DWITH_NEL_TOOLS=OFF -DWITH_NELNS=OFF -DWITH_QT5=OFF -DWITH_LIBGSF=OFF -DFINAL_VERSION=ON -DWITH_DRIVER_OPENGL=ON -DWITH_DRIVER_OPENAL=ON -DWITH_SSE3=OFF -DWITH_STATIC=ON -DWITH_STATIC_DRIVERS=ON ../code docker run --rm -v ryzombuild_bionic_x86_64_hunter:/root/.hunter --mount "type=bind,source=Y:\ryzomcore4,target=/mnt/nel" --workdir "/mnt/nel/build_client_bionic" ryzombuild_bionic_x86_64 ninja -j9 ``` ## Test Steam Runtime directly with GCC 4.8.4 ``` docker run --rm -v steamrt_scout_amd64_hunter:/root/.hunter --mount "type=bind,source=Y:\ryzomcore4,target=/mnt/nel" --workdir "/mnt/nel/build_client_scout" steamrt_scout_amd64 cmake -G "Ninja" -DCMAKE_BUILD_TYPE=Release -DHUNTER_ENABLED=ON -DHUNTER_STATUS_DEBUG=ON -DHUNTER_JOBS_NUMBER=9 -DWITH_NEL_TESTS=OFF -DWITH_NEL_SAMPLES=OFF -DWITH_RYZOM=ON -DWITH_RYZOM_SERVER=OFF -DWITH_RYZOM_CLIENT=ON -DWITH_RYZOM_PATCH=ON -DWITH_RYZOM_TOOLS=OFF -DWITH_NEL_TOOLS=OFF -DWITH_NELNS=OFF -DWITH_QT5=OFF -DWITH_LIBGSF=OFF -DFINAL_VERSION=ON -DWITH_DRIVER_OPENGL=ON -DWITH_DRIVER_OPENAL=ON -DWITH_SSE3=OFF ../code docker run --rm -v steamrt_scout_amd64_hunter:/root/.hunter --mount "type=bind,source=Y:\ryzomcore4,target=/mnt/nel" --workdir "/mnt/nel/build_client_scout" steamrt_scout_amd64 ninja -j9 ``` ## Test Steam Runtime with GCC 5 ``` docker run --rm -v ryzombuild_scout_gcc5_x86_64_hunter:/root/.hunter --mount "type=bind,source=Y:\ryzomcore4,target=/mnt/nel" --workdir "/mnt/nel/build_client_scout_gcc5" ryzombuild_scout_gcc5_x86_64 cmake -G "Ninja" -DCMAKE_BUILD_TYPE=Release -DHUNTER_ENABLED=ON -DHUNTER_STATUS_DEBUG=ON -DHUNTER_JOBS_NUMBER=9 -DWITH_NEL_TESTS=OFF -DWITH_NEL_SAMPLES=OFF -DWITH_RYZOM=ON -DWITH_RYZOM_SERVER=OFF -DWITH_RYZOM_CLIENT=ON -DWITH_RYZOM_PATCH=ON -DWITH_RYZOM_TOOLS=OFF -DWITH_NEL_TOOLS=OFF -DWITH_NELNS=OFF -DWITH_QT5=OFF -DWITH_LIBGSF=OFF -DFINAL_VERSION=ON -DWITH_DRIVER_OPENGL=ON -DWITH_DRIVER_OPENAL=ON -DWITH_SSE3=OFF ../code docker run --rm -v ryzombuild_scout_gcc5_x86_64_hunter:/root/.hunter --mount "type=bind,source=Y:\ryzomcore4,target=/mnt/nel" --workdir "/mnt/nel/build_client_scout_gcc5" ryzombuild_scout_gcc5_x86_64 ninja -j9 ``` ## Test Steam Runtime with GCC 9 ``` docker run --rm -v ryzombuild_scout_gcc9_x86_64_hunter:/root/.hunter --mount "type=bind,source=Y:\ryzomcore4,target=/mnt/nel" --workdir "/mnt/nel/build_client_scout_gcc9" ryzombuild_scout_gcc9_x86_64 cmake -G "Ninja" -DCMAKE_BUILD_TYPE=Release -DHUNTER_ENABLED=ON -DHUNTER_STATUS_DEBUG=ON -DHUNTER_JOBS_NUMBER=9 -DWITH_NEL_TESTS=OFF -DWITH_NEL_SAMPLES=OFF -DWITH_RYZOM=ON -DWITH_RYZOM_SERVER=OFF -DWITH_RYZOM_CLIENT=ON -DWITH_RYZOM_PATCH=ON -DWITH_RYZOM_TOOLS=OFF -DWITH_NEL_TOOLS=OFF -DWITH_NELNS=OFF -DWITH_QT5=OFF -DWITH_LIBGSF=OFF -DFINAL_VERSION=ON -DWITH_DRIVER_OPENGL=ON -DWITH_DRIVER_OPENAL=ON -DWITH_SSE3=OFF ../code docker run --rm -v ryzombuild_scout_gcc9_x86_64_hunter:/root/.hunter --mount "type=bind,source=Y:\ryzomcore4,target=/mnt/nel" --workdir "/mnt/nel/build_client_scout_gcc9" ryzombuild_scout_gcc9_x86_64 ninja -j9 ``` ## Test Steam Runtime with GCC 9 x86 ``` docker run --platform linux/386 --rm -v ryzombuild_scout_gcc9_x86_hunter:/root/.hunter --mount "type=bind,source=Y:\ryzomcore4,target=/mnt/nel" --workdir "/mnt/nel/build_client_scout_gcc9_32" ryzombuild_scout_gcc9_x86 setarch i686 cmake -G "Ninja" -DCMAKE_BUILD_TYPE=Release -DHUNTER_ENABLED=ON -DHUNTER_STATUS_DEBUG=ON -DHUNTER_JOBS_NUMBER=9 -DWITH_NEL_TESTS=OFF -DWITH_NEL_SAMPLES=OFF -DWITH_RYZOM=ON -DWITH_RYZOM_SERVER=OFF -DWITH_RYZOM_CLIENT=ON -DWITH_RYZOM_PATCH=ON -DWITH_RYZOM_TOOLS=OFF -DWITH_NEL_TOOLS=OFF -DWITH_NELNS=OFF -DWITH_QT5=OFF -DWITH_LIBGSF=OFF -DFINAL_VERSION=ON -DWITH_DRIVER_OPENGL=ON -DWITH_DRIVER_OPENAL=ON -DCUSTOM_FLAGS="-march=i686" -DWITH_SSE2=OFF -DWITH_SSE3=OFF ../code docker run --platform linux/386 --rm -v ryzombuild_scout_gcc9_x86_hunter:/root/.hunter --mount "type=bind,source=Y:\ryzomcore4,target=/mnt/nel" --workdir "/mnt/nel/build_client_scout_gcc9_32" ryzombuild_scout_gcc9_x86 setarch i686 ninja -j9 ``` ## Check Docker multi-arch platforms ``` >docker buildx ls NAME/NODE DRIVER/ENDPOINT STATUS PLATFORMS desktop-linux docker desktop-linux desktop-linux running linux/amd64, linux/arm64, linux/riscv64, linux/ppc64le, linux/s390x, linux/386, linux/arm/v7, linux/arm/v6 default * docker default default running linux/amd64, linux/arm64, linux/riscv64, linux/ppc64le, linux/s390x, linux/386, linux/arm/v7, linux/arm/v6 ```