FROM debian:buster
MAINTAINER Linuro <cpp@zom.bi>
EXPOSE 30000

# Set to TRUE if you want to use the server terminal.
# If so, make sure to not start the server with --terminal
# and specify an admin in your configuration.
ENV CURSES FALSE

ENV BUILD_PCKGS "build-essential cmake libirrlicht-dev git ca-certificates \
        postgresql-server-dev-all luajit "
ENV LIVE_PCKGS "zlib1g-dev libbz2-dev libncurses-dev libsqlite3-dev \
	libcurl4-gnutls-dev libfreetype6-dev libgmp-dev libjsoncpp-dev"
ENV DEBIAN_FRONTEND non-interactive

RUN apt-get update && \
    apt-get install -y --no-install-recommends  ${LIVE_PCKGS} ${BUILD_PCKGS}


# This will clone the minetest engine and game repositories.
RUN git clone --depth 1 https://github.com/minetest/minetest.git
WORKDIR minetest
RUN git clone --depth 1 https://github.com/minetest/minetest_game.git games/minetest_game

RUN cmake . -DRUN_IN_PLACE=FALSE -DBUILD_SERVER=TRUE \
	-DBUILD_CLIENT=FALSE -DENABLE_POSTGRESQL=ON \
        -DCMAKE_BUILD_TYPE=Release -DENABLE_CURSES=${CURSES}\
        -DLUAJIT=1

RUN make install

# free up some space
RUN apt-get remove -y --autoremove ${BUILD_PCKGS} && \
	apt-get clean && rm -rf /root/minetest

RUN useradd minetest -m -u 1000 && \
	su minetest -c "mkdir -p ~/.minetest/worlds"

VOLUME /home/minetest/.minetest/worlds

USER minetest
CMD /usr/local/bin/minetestserver --info