commit
						a14e614aef
					
				| @ -0,0 +1,44 @@ | |||||||
|  | FROM debian:latest as builder | ||||||
|  | MAINTAINER Santic <admin@santic-zombie.ru> | ||||||
|  | 
 | ||||||
|  | RUN apt-get update && apt-get install -y git libcurl4-gnutls-dev \ | ||||||
|  |     build-essential libsdl2-dev zlib1g-dev | ||||||
|  |      | ||||||
|  | RUN git clone https://github.com/skullernet/q2pro && \ | ||||||
|  |     git clone https://github.com/skullernet/openffa && \ | ||||||
|  |     git clone https://github.com/skullernet/opentdm | ||||||
|  | 
 | ||||||
|  | COPY config /q2pro/.config | ||||||
|  | WORKDIR /q2pro | ||||||
|  | RUN make | ||||||
|  | 
 | ||||||
|  | WORKDIR /openffa | ||||||
|  | RUN make | ||||||
|  | 
 | ||||||
|  | WORKDIR /opentdm | ||||||
|  | RUN make | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | FROM debian:latest | ||||||
|  | 
 | ||||||
|  | RUN useradd -m -s /bin/bash quake2 && \ | ||||||
|  |     mkdir -p /usr/local/lib/games/q2pro/baseq2 && \ | ||||||
|  |     mkdir -p /usr/local/lib/games/q2pro/openffa && \ | ||||||
|  |     mkdir -p /usr/local/lib/games/q2pro/opentdm | ||||||
|  | 
 | ||||||
|  |      | ||||||
|  | COPY --from=builder /q2pro/gamex86_64.so \ | ||||||
|  |                     /usr/local/lib/games/q2pro/baseq2/gamex86_64.so | ||||||
|  | COPY --from=builder /openffa/gamex86_64.so \ | ||||||
|  |                     /usr/local/lib/games/q2pro/openffa/gamex86_64.so | ||||||
|  | COPY --from=builder /opentdm/gamex86_64.so \ | ||||||
|  |                     /usr/local/lib/games/q2pro/opentdm/gamex86_64.so | ||||||
|  | COPY --from=builder /q2pro/q2proded /usr/local/bin | ||||||
|  | 
 | ||||||
|  | EXPOSE 27910/udp | ||||||
|  | 
 | ||||||
|  | USER quake2 | ||||||
|  | 
 | ||||||
|  | ENTRYPOINT ["q2proded"] | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
| @ -0,0 +1,34 @@ | |||||||
|  | # docker-q2pro | ||||||
|  | Dockerfile to build q2proded container | ||||||
|  | 
 | ||||||
|  | How build: | ||||||
|  | ``` | ||||||
|  | $docker build . --tag q2image | ||||||
|  | ``` | ||||||
|  | 
 | ||||||
|  | How run: | ||||||
|  | ``` | ||||||
|  | $docker run --name q2 -d --rm -v /home/santic/.q2pro_t:/home/quake2/.q2pro -p 27999:27910/udp q2image +set game openffa +exec server.cfg | ||||||
|  | ``` | ||||||
|  | 
 | ||||||
|  | How to configure Docker in ArchLinux (Rootless mode): | ||||||
|  | ``` | ||||||
|  | #echo 'kernel.unprivileged_userns_clone=1' > /etc/sysctl.d/99-docker-rootless.conf | ||||||
|  | 
 | ||||||
|  | #sudo sysctl --system | ||||||
|  | 
 | ||||||
|  | $yaourt -S docker-rootless subuid-register | ||||||
|  | 
 | ||||||
|  | $subuid-register | ||||||
|  | 
 | ||||||
|  | #echo 'santic:814481408:65536' > /etc/subgid | ||||||
|  | 
 | ||||||
|  | #echo 'santic:814481408:65536' > /etc/subuid | ||||||
|  | 
 | ||||||
|  | $export DOCKER_HOST=unix://$XDG_RUNTIME_DIR/docker.sock | ||||||
|  | 
 | ||||||
|  | $systemctl --user start docker | ||||||
|  | 
 | ||||||
|  | $systemctl --user enable docker | ||||||
|  | #loginctl enable-linger santic | ||||||
|  | ``` | ||||||
| @ -0,0 +1,195 @@ | |||||||
|  | # Example Q2PRO build time configuration file. Copy this file to `.config' and | ||||||
|  | # edit it to suit your needs. | ||||||
|  | # | ||||||
|  | # Any variable that is commented out is DISABLED. Setting a variable to some | ||||||
|  | # non-empty value ENABLES it. It doesn't really matter what value the variable | ||||||
|  | # is set to, except in cases where the variable is NOT a boolean. | ||||||
|  | # | ||||||
|  | # After you change something in `.config', make sure to do a full rebuild by | ||||||
|  | # typing `make clean; make'. | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | ### Client configuration ### | ||||||
|  | 
 | ||||||
|  | # Enable PNG textures by linking against libpng. | ||||||
|  | #CONFIG_PNG=y | ||||||
|  | 
 | ||||||
|  | # Enable JPEG textures by linking against libjpeg. | ||||||
|  | #CONFIG_JPEG=y | ||||||
|  | 
 | ||||||
|  | # Enable HTTP downloads by linking against libcurl. | ||||||
|  | #CONFIG_HTTP=y | ||||||
|  | 
 | ||||||
|  | # Enable OpenAL sound engine. | ||||||
|  | #CONFIG_OPENAL=y | ||||||
|  | 
 | ||||||
|  | # Enable direct sound driver (DirectSound on Windows, OSS on Linux). This | ||||||
|  | # option has no effect if CONFIG_NO_SOFTWARE_SOUND is set. | ||||||
|  | #CONFIG_DIRECT_SOUND=y | ||||||
|  | 
 | ||||||
|  | # Enable when building for systems that support OpenGL ES 1.1 only (e.g. Raspberry Pi) | ||||||
|  | #CONFIG_GLES=y | ||||||
|  | 
 | ||||||
|  | # Specify default list of fullscreen modes. Note: modes are automatically | ||||||
|  | # detected on Windows. Default list is only used when autodetection fails. | ||||||
|  | #CONFIG_DEFAULT_MODELIST=640x480 800x600 1024x768 | ||||||
|  | 
 | ||||||
|  | # Specify default window geometry. | ||||||
|  | #CONFIG_DEFAULT_GEOMETRY=640x480 | ||||||
|  | 
 | ||||||
|  | # Disable default Quake 2 software sound engine. Only makes sense when | ||||||
|  | # CONFIG_OPENAL is set. | ||||||
|  | #CONFIG_NO_SOFTWARE_SOUND=y | ||||||
|  | 
 | ||||||
|  | # Disable menu-based user interface. This disables scriptable menus, as well as | ||||||
|  | # demo and server browsers. | ||||||
|  | #CONFIG_NO_MENUS=y | ||||||
|  | 
 | ||||||
|  | # Disable dynamic lighting. | ||||||
|  | #CONFIG_NO_DYNAMIC_LIGHTS=y | ||||||
|  | 
 | ||||||
|  | # Disable automatic replies to "!version" chat probes. | ||||||
|  | #CONFIG_NO_AUTOREPLY=y | ||||||
|  | 
 | ||||||
|  | # Disable MD3 models. | ||||||
|  | #CONFIG_NO_MD3=y | ||||||
|  | 
 | ||||||
|  | # Disable TGA textures. | ||||||
|  | #CONFIG_NO_TGA=y | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | ### Server configuration ### | ||||||
|  | 
 | ||||||
|  | # Enable r1ch.net anticheat server interface. | ||||||
|  | #CONFIG_ANTICHEAT_SERVER=y | ||||||
|  | 
 | ||||||
|  | # Enable local MVD recording and MVD/GTV server functionality. Use this for | ||||||
|  | # hosting a GTV-capable game server. | ||||||
|  | #CONFIG_MVD_SERVER=y | ||||||
|  | 
 | ||||||
|  | # Enable MVD/GTV client functionality. Use this for hosting a GTV relay server. | ||||||
|  | #CONFIG_MVD_CLIENT=y | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | ### X86 options ### | ||||||
|  | 
 | ||||||
|  | # Options below have no effect on architectures other than x86. | ||||||
|  | 
 | ||||||
|  | # Enable this option on Linux to build a server capable of loading game mods | ||||||
|  | # built using ancient GCC versions. | ||||||
|  | #CONFIG_X86_GAME_ABI_HACK=y | ||||||
|  | 
 | ||||||
|  | # Enable this option to build for x86 CPUs without SSE2 support. Enabling this | ||||||
|  | # makes player movement code incompatible with original quake2.exe. Prediction | ||||||
|  | # errors will occur on the client unless both client and server use this | ||||||
|  | # option. | ||||||
|  | #CONFIG_X86_NO_SSE_MATH=y | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | ### Common configuration ### | ||||||
|  | 
 | ||||||
|  | # Enable this when targeting native Windows. | ||||||
|  | #CONFIG_WINDOWS=y | ||||||
|  | 
 | ||||||
|  | # Enable crash dump generation on Windows. | ||||||
|  | #CONFIG_WINDOWS_CRASH_DUMPS=y | ||||||
|  | 
 | ||||||
|  | # Allow dedicated server to be run as Windows service. | ||||||
|  | #CONFIG_WINDOWS_SERVICE=y | ||||||
|  | 
 | ||||||
|  | # Enable experimental variable server FPS support in server and client. | ||||||
|  | #CONFIG_VARIABLE_SERVER_FPS=y | ||||||
|  | 
 | ||||||
|  | # Enable built-in tests. DON'T USE IN RELEASE BUILDS. | ||||||
|  | #CONFIG_TESTS=y | ||||||
|  | 
 | ||||||
|  | # Enable debugging and developer code. | ||||||
|  | #CONFIG_DEBUG=y | ||||||
|  | 
 | ||||||
|  | # Don't link against zlib. Not recommended for client builds, since lack of | ||||||
|  | # zlib support breaks compatibility with servers running protocol 35. | ||||||
|  | #CONFIG_NO_ZLIB=y | ||||||
|  | 
 | ||||||
|  | # Don't handle ICMP errors on UDP sockets. | ||||||
|  | #CONFIG_NO_ICMP=y | ||||||
|  | 
 | ||||||
|  | # Don't print console text on standard output and don't read commands from | ||||||
|  | # standard input. | ||||||
|  | #CONFIG_NO_SYSTEM_CONSOLE=y | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | ### Game directories ### | ||||||
|  | 
 | ||||||
|  | # Name of the game directory used as base game directory. Default value is | ||||||
|  | # "baseq2". Change this when creating a standalone game using Q2PRO engine. | ||||||
|  | #CONFIG_GAME_BASE=baseq2 | ||||||
|  | 
 | ||||||
|  | # Name of the game directory used as default game directory. Default value is | ||||||
|  | # empty. This option sets the default value of "game" console variable. Change | ||||||
|  | # this for building a version of Q2PRO customized for particular game mod, e.g. | ||||||
|  | # "action". | ||||||
|  | #CONFIG_GAME_DEFAULT= | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | ### System paths ### | ||||||
|  | 
 | ||||||
|  | # By default Q2PRO assumes per-user installation: all game content, configs and | ||||||
|  | # executable files are kept in the same directory tree. This configuration is | ||||||
|  | # easy for most users to set up, but not ideal from security standpoint. | ||||||
|  | # | ||||||
|  | # Uncomment the options below if you wish to install Q2PRO system-wide, | ||||||
|  | # separating static, executable and writable content into different trees with | ||||||
|  | # different permissions.  These options have no effect on Windows. | ||||||
|  | 
 | ||||||
|  | # Path to the game data tree. This is where all static, non-executable data | ||||||
|  | # lives (e.g., paks). This option sets the default value of "basedir" console | ||||||
|  | # variable. Default value of this option is "." (current directory). | ||||||
|  | CONFIG_PATH_DATA=/usr/local/share/games/q2pro | ||||||
|  | 
 | ||||||
|  | # Path to the game libraries tree. This is where executable parts of all game | ||||||
|  | # mods live (e.g., game$(CPU).so files). This option sets the default value of | ||||||
|  | # "libdir" console variable. Default value of this option is "." (current | ||||||
|  | # directory). | ||||||
|  | CONFIG_PATH_LIB=/usr/local/lib/games/q2pro | ||||||
|  | 
 | ||||||
|  | # Name of the directory where Q2PRO stores per-user data. Tilde at the | ||||||
|  | # beginning of the name is automatically expanded to user home directory at run | ||||||
|  | # time. Users running Q2PRO must have write permissions to this directory. | ||||||
|  | # This option sets the default value of "homedir" console variable. Default | ||||||
|  | # value of this option is "" (use basedir as homedir). | ||||||
|  | CONFIG_PATH_HOME=~/.q2pro | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | ### Options for cross-compiling. ### | ||||||
|  | 
 | ||||||
|  | # Force cpu type to CPU, instead of autodetecting it. | ||||||
|  | #CPU=x86 | ||||||
|  | 
 | ||||||
|  | # Force system type to CPU, instead of autodetecting it. | ||||||
|  | #SYS=Win32 | ||||||
|  | 
 | ||||||
|  | # Force different utility names. | ||||||
|  | #CC=i686-w64-mingw32-gcc | ||||||
|  | #WINDRES=i686-w64-mingw32-windres | ||||||
|  | #STRIP=i686-w64-mingw32-strip | ||||||
|  | #RM=rm -f | ||||||
|  | #RMDIR=rm -rf | ||||||
|  | #MKDIR=mkdir -p | ||||||
|  | 
 | ||||||
|  | # Specify additional global include and library options. | ||||||
|  | #INCLUDES= | ||||||
|  | #LIBS= | ||||||
|  | 
 | ||||||
|  | # Disable autodetection and force include and library options for various | ||||||
|  | # libraries. | ||||||
|  | #CURL_CFLAGS= | ||||||
|  | #CURL_LIBS= | ||||||
|  | 
 | ||||||
|  | #PNG_CFLAGS= | ||||||
|  | #PNG_LIBS= | ||||||
|  | 
 | ||||||
|  | #JPG_CFLAGS= | ||||||
|  | #JPG_LIBS= | ||||||
|  | 
 | ||||||
|  | #ZLIB_CFLAGS= | ||||||
|  | #ZLIB_LIBS= | ||||||
					Loading…
					
					
				
		Reference in new issue