chore(client): update Dockerfile dependencies and entrypoint script
Adjust Dockerfile with additional development packages for libraries. use xvfb-run instead of xvfb.
This commit is contained in:
parent
2920b59e1b
commit
edd234b5eb
@ -8,7 +8,10 @@ ARG LUAJIT_VERSION=v2.1
|
|||||||
RUN apk add --no-cache git build-base cmake curl-dev zlib-dev zstd-dev \
|
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 \
|
sqlite-dev postgresql-dev hiredis-dev leveldb-dev jpeg-dev libpng-dev \
|
||||||
glfw-dev gmp-dev jsoncpp-dev libxi-dev libintl ninja ca-certificates \
|
glfw-dev gmp-dev jsoncpp-dev libxi-dev libintl ninja ca-certificates \
|
||||||
freetype-dev
|
freetype-dev luajit-dev gettext sdl2-dev libogg-dev libvorbis-dev \
|
||||||
|
openal-soft-dev mesa-dev
|
||||||
|
|
||||||
|
|
||||||
WORKDIR /usr/src/
|
WORKDIR /usr/src/
|
||||||
RUN git clone --recursive https://github.com/libspatialindex/libspatialindex && \
|
RUN git clone --recursive https://github.com/libspatialindex/libspatialindex && \
|
||||||
cd libspatialindex && \
|
cd libspatialindex && \
|
||||||
@ -32,11 +35,16 @@ RUN cmake -B build \
|
|||||||
-DBUILD_SERVER=FALSE \
|
-DBUILD_SERVER=FALSE \
|
||||||
-DBUILD_CLIENT=TRUE \
|
-DBUILD_CLIENT=TRUE \
|
||||||
-DBUILD_UNITTESTS=FALSE \
|
-DBUILD_UNITTESTS=FALSE \
|
||||||
|
-DBUILD_DOCUMENTATION=FALSE \
|
||||||
-DENABLE_SOUND=OFF \
|
-DENABLE_SOUND=OFF \
|
||||||
-DENABLE_POSTGRESQL=OFF \
|
-DENABLE_POSTGRESQL=OFF \
|
||||||
-DENABLE_REDIS=OFF \
|
-DENABLE_REDIS=OFF \
|
||||||
-DENABLE_PROMETHEUS=FALSE \
|
-DENABLE_PROMETHEUS=FALSE \
|
||||||
-DVERSION_EXTRA=docker_client \
|
-DVERSION_EXTRA=docker_client \
|
||||||
|
-DENABLE_OPENGL=ON \
|
||||||
|
-DENABLE_OPENGL3=OFF \
|
||||||
|
-DENABLE_GLES2=OFF \
|
||||||
|
-DUSE_SDL2=OFF \
|
||||||
-GNinja && \
|
-GNinja && \
|
||||||
cmake --build build && \
|
cmake --build build && \
|
||||||
cmake --install build
|
cmake --install build
|
||||||
@ -49,7 +57,7 @@ COPY --from=compile /usr/local/bin /usr/local/bin
|
|||||||
COPY --from=compile /usr/local/lib /usr/local/lib
|
COPY --from=compile /usr/local/lib /usr/local/lib
|
||||||
COPY ./entrypoint.sh /usr/local/bin/entrypoint.sh
|
COPY ./entrypoint.sh /usr/local/bin/entrypoint.sh
|
||||||
|
|
||||||
RUN apk add --no-cache sqlite-libs curl gmp libstdc++ libgcc luajit irrlicht x11vnc bash xdotool leveldb jsoncpp libxi jpeg libpng bind-tools jsoncpp && \
|
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 && \
|
adduser -D minetest --uid 30000 -h /var/lib/minetest && \
|
||||||
mkdir /var/lib/minetest/.minetest && \
|
mkdir /var/lib/minetest/.minetest && \
|
||||||
chown -R minetest:minetest /var/lib/minetest && \
|
chown -R minetest:minetest /var/lib/minetest && \
|
||||||
|
@ -5,14 +5,14 @@ export DISPLAY=:99
|
|||||||
rm -f /tmp/.X1-lock
|
rm -f /tmp/.X1-lock
|
||||||
|
|
||||||
# Start Xvfb
|
# Start Xvfb
|
||||||
echo "Starting Xvfb"
|
# echo "Starting Xvfb"
|
||||||
Xvfb $DISPLAY -ac -screen 0 "$XVFB_WHD" -nolisten tcp +extension GLX +render -noreset &
|
# Xvfb $DISPLAY -ac -screen 0 "$XVFB_WHD" -nolisten tcp +extension GLX +render -noreset &
|
||||||
xvfb_pid="$!"
|
# xvfb_pid="$!"
|
||||||
echo "Waiting for Xvfb (PID: $Xvfb_pid) to be ready..."
|
# echo "Waiting for Xvfb (PID: $Xvfb_pid) to be ready..."
|
||||||
while ! xdpyinfo -display "${DISPLAY}" > /dev/null 2>&1; do
|
# while ! xdpyinfo -display "${DISPLAY}" > /dev/null 2>&1; do
|
||||||
sleep 0.1
|
# sleep 0.1
|
||||||
done
|
# done
|
||||||
echo "Xvfb is running."
|
# echo "Xvfb is running."
|
||||||
|
|
||||||
# prevent spikes if you spawn many containers simultaneously
|
# prevent spikes if you spawn many containers simultaneously
|
||||||
sleep $((2 + $RANDOM % 6))
|
sleep $((2 + $RANDOM % 6))
|
||||||
@ -25,16 +25,23 @@ fi
|
|||||||
|
|
||||||
if [ "$RANDOM_INPUT" == "1" ]
|
if [ "$RANDOM_INPUT" == "1" ]
|
||||||
then
|
then
|
||||||
minetest --address "$SERVER" --port "$PORT" --name "$PLAYERNAME" --password "$PASSWORD" --go --random-input &
|
xvfb-run minetest --address "$SERVER" --port "$PORT" --name "$PLAYERNAME" --password "$PASSWORD" --go --random-input &
|
||||||
else
|
else
|
||||||
echo minetest --address "$SERVER" --port "$PORT" --name "$PLAYERNAME" --password "$PASSWORD" --go
|
echo minetest --address "$SERVER" --port "$PORT" --name "$PLAYERNAME" --password "$PASSWORD" --go
|
||||||
minetest --address "$SERVER" --port "$PORT" --name "$PLAYERNAME" --password "$PASSWORD" --go &
|
xvfb-run minetest --address "$SERVER" --port "$PORT" --name "$PLAYERNAME" --password "$PASSWORD" --go &
|
||||||
fi
|
fi
|
||||||
minetest_pid=$!
|
minetest_pid=$!
|
||||||
|
|
||||||
function finish {
|
function finish {
|
||||||
kill -n 9 $minetest_pid & wait
|
if ps -p $minetest_pid > /dev/null ; then
|
||||||
kill -n 9 $xvfb_pid & wait
|
kill -n 9 $minetest_pid
|
||||||
|
wait $minetest_pid
|
||||||
|
fi
|
||||||
|
# if ps -p $xvfb_pid > /dev/null ; then
|
||||||
|
# kill -n 9 $xvfb_pid
|
||||||
|
# wait $xvfb_pid
|
||||||
|
# fi
|
||||||
|
exit 0
|
||||||
}
|
}
|
||||||
trap finish EXIT TERM INT QUIT
|
trap finish EXIT TERM INT QUIT
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user