1
0
Fork 0
minetest-engine-multicraft2/Dockerfile

69 lines
2.2 KiB
Docker
Raw Normal View History

2022-04-09 04:05:37 -07:00
FROM alpine:3.14
fix package , fix ci build, tune cmake flags and rules * tune up gitlab ci: * remove package part cos we have obs service * add feladora 38 and feladora 37 too * remove winbuntu 14, add debian 11, 12, winbuntu 17, 20, 22 * use minenux minetest repo game (seems not work) * remove non buildable stages.. only build and package shit win * set multicraft as prefix path and artifacts * back cmake in list new behaviour for blacklist locales * gitlab ci buil for debian 8 using backports on jsoncpp * solved https://github.com/minetest/minetest/issues/6567 * solved https://github.com/minetest/minetest/issues/7681 * cmake fixed to minimum supported and c++11 standar able * close https://codeberg.org/minenux/minetest-engine-multicraft2/issues/51 * allow distro hardening and cflags env close https://codeberg.org/minenux/minetest-engine-multicraft2/issues/55 * Fix no locales being generated when APPLY_LOCALE_BLACKLIST=0 * Fix linking with Postgres libs: * closes https://github.com/minetest/minetest/issues/12149 * closes https://github.com/minetest/minetest/issues/11219 * PostgreSQL fallback code missed the includes https://github.com/minetest/minetest/issues/11219 * https://github.com/minetest/minetest/commit/a24899bf2dcd58916922d671ee8761448b6876e5 * https://github.com/minetest/minetest/commit/3e2145d662d26443e96ac7191eda093c85c6f2bc * integrates https://github.com/minetest/minetest/pull/11215 * https://github.com/minetest/minetest/commit/a24899bf2dcd58916922d671ee8761448b6876e5 * backported https://github.com/minetest/minetest/commit/998e4820c982c0ea9d257c15f93f1f21d85d6327 * tune up windoser build scripts for multicraft: * fix build paths builds script due repo change name * fix winbuntu image fosal and fix missing deploy for win shit package * use SSE registers for FP operations on i386 for modern gcc platforms only * only use if related are given, by example 32bit using gcc compilers/stdlibs becouse of the long time bugs around those errors by desing, its not about to crash the engine.. its about to permits to hacked clients (either players or the client program per se) making predictable results, so predictable results permits to catch securit issues! * floating point problems are only on modern gcc and modern platform arches, raising problems like bad calculations positions.. a long time bug reported at https://git.minetest.land/Mineclonia/Mineclonia/issues/201 and addressed at https://github.com/minetest/minetest/issues/11742#issuecomment-994444462 with enought explanations but not accepted byt stupid developers.. now years later.. the problems were solved and reconiced as big bug! A workaround were proposed at https://github.com/minetest/minetest/pull/12389/files but never accepted (included in this repository), cos was superset by https://github.com/minetest/minetest/commit/8ff3fadba033dbc686c4f834811f0744099fedfb * closes https://codeberg.org/minenux/minetest-engine-multicraft2/issues/57
2023-09-15 19:16:25 -07:00
ENV MINETEST_GAME_VERSION stable-5.2
2020-08-25 00:59:52 -07:00
COPY .git /usr/src/multicraft/.git
COPY CMakeLists.txt /usr/src/multicraft/CMakeLists.txt
COPY README.md /usr/src/multicraft/README.md
COPY multicraft.conf.example /usr/src/multicraft/multicraft.conf.example
COPY builtin /usr/src/multicraft/builtin
COPY cmake /usr/src/multicraft/cmake
COPY doc /usr/src/multicraft/doc
COPY fonts /usr/src/multicraft/fonts
COPY lib /usr/src/multicraft/lib
COPY misc /usr/src/multicraft/misc
COPY po /usr/src/multicraft/po
COPY src /usr/src/multicraft/src
COPY textures /usr/src/multicraft/textures
2020-08-25 00:59:52 -07:00
WORKDIR /usr/src/multicraft
RUN apk add --no-cache git build-base irrlicht-dev cmake bzip2-dev libpng-dev \
jpeg-dev libxxf86vm-dev mesa-dev sqlite-dev libogg-dev \
libvorbis-dev openal-soft-dev curl-dev freetype-dev zlib-dev \
gmp-dev jsoncpp-dev postgresql-dev luajit-dev ca-certificates && \
git clone --depth=1 -b ${MINETEST_GAME_VERSION} https://github.com/minetest/minetest_game.git ./games/minetest_game && \
rm -fr ./games/minetest_game/.git
WORKDIR /usr/src/
RUN git clone --recursive https://github.com/jupp0r/prometheus-cpp/ && \
mkdir prometheus-cpp/build && \
cd prometheus-cpp/build && \
cmake .. \
-DCMAKE_INSTALL_PREFIX=/usr/local \
-DCMAKE_BUILD_TYPE=Release \
-DENABLE_TESTING=0 && \
make -j2 && \
make install
2020-08-25 00:59:52 -07:00
WORKDIR /usr/src/multicraft
RUN mkdir build && \
cd build && \
cmake .. \
-DCMAKE_INSTALL_PREFIX=/usr/local \
-DCMAKE_BUILD_TYPE=Release \
-DBUILD_SERVER=TRUE \
-DENABLE_PROMETHEUS=TRUE \
-DBUILD_UNITTESTS=FALSE \
-DBUILD_CLIENT=FALSE && \
make -j2 && \
make install
2022-04-09 04:05:37 -07:00
FROM alpine:3.14
RUN apk add --no-cache sqlite-libs curl gmp libstdc++ libgcc libpq luajit && \
2020-08-25 00:59:52 -07:00
adduser -D multicraft --uid 30000 -h /var/lib/multicraft && \
chown -R multicraft:multicraft /var/lib/multicraft
2020-08-25 00:59:52 -07:00
WORKDIR /var/lib/multicraft
2020-08-25 00:59:52 -07:00
COPY --from=0 /usr/local/share/multicraft /usr/local/share/multicraft
COPY --from=0 /usr/local/bin/multicraftserver /usr/local/bin/multicraftserver
COPY --from=0 /usr/local/share/doc/multicraft/multicraft.conf.example /etc/multicraft/multicraft.conf
2020-08-25 00:59:52 -07:00
USER multicraft:multicraft
EXPOSE 30000/udp 30000/tcp
2020-08-25 00:59:52 -07:00
CMD ["/usr/local/bin/multicraftserver", "--config", "/etc/multicraft/multicraft.conf"]