- Added `.mod_env` file to store environment configurations for mods. - The file includes settings for `CURRENT_MOD`, `DEPENDENCIES`, and `CLIENT_NB`. - Modifications across various files to incorporate and reference values from `.mod_env`. - Docker-related scripts updated to utilize variables from `.mod_env`.
102 lines
3.1 KiB
Docker
102 lines
3.1 KiB
Docker
ARG OPENGL_BASE_IMAGE="registry.apps.education.fr/iri/minetest/docker_test_harness/opengl:latest"
|
|
FROM alpine:latest AS compile
|
|
|
|
ARG MINETEST_VERSION=5.9.1
|
|
ARG MINETEST_GAME_VERSION=5.8.0
|
|
ARG LUAJIT_VERSION=v2.1
|
|
|
|
RUN apk add --no-cache git build-base cmake curl-dev zlib-dev zstd-dev \
|
|
sqlite-dev postgresql-dev hiredis-dev leveldb-dev jpeg-dev libpng-dev \
|
|
glfw-dev gmp-dev jsoncpp-dev libxi-dev libintl ninja ca-certificates \
|
|
freetype-dev luajit-dev gettext sdl2-dev libogg-dev libvorbis-dev \
|
|
openal-soft-dev mesa-dev
|
|
|
|
|
|
WORKDIR /usr/src/
|
|
RUN git clone --recursive https://github.com/libspatialindex/libspatialindex && \
|
|
cd libspatialindex && \
|
|
cmake -B build \
|
|
-DCMAKE_INSTALL_PREFIX=/usr/local && \
|
|
cmake --build build && \
|
|
cmake --install build && \
|
|
cd /usr/src/ && \
|
|
git clone --recursive https://luajit.org/git/luajit.git -b ${LUAJIT_VERSION} && \
|
|
cd luajit && \
|
|
make amalg && make install && \
|
|
cd /usr/src/ && \
|
|
git clone --depth=1 --single-branch --branch ${MINETEST_VERSION} -c advice.detachedHead=false https://github.com/minetest/minetest.git minetest && \
|
|
rm -fr minetest/.git && \
|
|
git clone --depth=1 -b ${MINETEST_GAME_VERSION} https://github.com/minetest/minetest_game.git minetest/games/minetest_game && \
|
|
rm -fr minetest/games/minetest_game/.git
|
|
WORKDIR /usr/src/minetest
|
|
RUN cmake -B build \
|
|
-DCMAKE_INSTALL_PREFIX=/usr/local \
|
|
-DCMAKE_BUILD_TYPE=Release \
|
|
-DBUILD_SERVER=FALSE \
|
|
-DBUILD_CLIENT=TRUE \
|
|
-DBUILD_UNITTESTS=FALSE \
|
|
-DBUILD_DOCUMENTATION=FALSE \
|
|
-DENABLE_SOUND=OFF \
|
|
-DENABLE_POSTGRESQL=OFF \
|
|
-DENABLE_REDIS=OFF \
|
|
-DENABLE_PROMETHEUS=FALSE \
|
|
-DVERSION_EXTRA=docker_client \
|
|
-DENABLE_OPENGL=ON \
|
|
-DENABLE_OPENGL3=OFF \
|
|
-DENABLE_GLES2=OFF \
|
|
-DUSE_SDL2=OFF \
|
|
-GNinja && \
|
|
cmake --build build && \
|
|
cmake --install build
|
|
|
|
FROM ${OPENGL_BASE_IMAGE}
|
|
|
|
COPY --from=compile /usr/local/share/minetest /usr/local/share/minetest
|
|
COPY --from=compile /usr/local/bin/minetest /usr/local/bin/minetest
|
|
COPY --from=compile /usr/local/bin /usr/local/bin
|
|
COPY --from=compile /usr/local/lib /usr/local/lib
|
|
COPY ./entrypoint.sh /usr/local/bin/entrypoint.sh
|
|
|
|
RUN apk add --no-cache sqlite-libs curl gmp libstdc++ libgcc luajit x11vnc bash xdotool leveldb jsoncpp libxi jpeg libpng bind-tools jsoncpp procps && \
|
|
adduser -D minetest --uid 30000 -h /var/lib/minetest && \
|
|
mkdir /var/lib/minetest/.minetest && \
|
|
chown -R minetest:minetest /var/lib/minetest && \
|
|
chmod 755 /usr/local/bin/entrypoint.sh
|
|
|
|
|
|
WORKDIR /var/lib/minetest
|
|
|
|
COPY <<-EOF /var/lib/minetest/.minetest/minetest.conf
|
|
enable_fog = false
|
|
leaves_style = opaque
|
|
smooth_lighting = false
|
|
enable_clouds = false
|
|
enable_sound = false
|
|
enable_particles = false
|
|
undersampling = 8
|
|
enable_shaders = false
|
|
fps_max = 10
|
|
viewing_range = 20
|
|
screen_w = 640
|
|
screen_h = 480
|
|
fullscreen_bpp = 8
|
|
fov = 45
|
|
video_driver = opengl
|
|
EOF
|
|
|
|
RUN chown minetest:minetest /var/lib/minetest/.minetest/minetest.conf
|
|
|
|
USER minetest:minetest
|
|
|
|
ENV \
|
|
SERVER="minetest_server" \
|
|
PASSWORD="" \
|
|
PORT="30000" \
|
|
PLAYERNAME="random" \
|
|
RANDOM_INPUT="0" \
|
|
VNC="0"
|
|
|
|
# EXPOSE 5900/tcp
|
|
CMD ["/usr/local/bin/entrypoint.sh"]
|
|
|