Dockerfile 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. from debian:buster-slim as builder
  2. WORKDIR /minetest
  3. # The building requires Irrlich integrated in Luanti's source
  4. # (Which means the minimum you can use is 5.9.0)
  5. ARG VERSION="5.11.0"
  6. RUN apt-get update && \
  7. apt-get install -y \
  8. g++ make libc6-dev \
  9. cmake libbz2-dev libpng-dev \
  10. libjpeg-dev libxxf86vm-dev libgl1-mesa-dev \
  11. libsqlite3-dev libogg-dev libvorbis-dev \
  12. libopenal-dev libcurl4-gnutls-dev libfreetype6-dev \
  13. zlib1g-dev libgmp-dev libjsoncpp-dev \
  14. libzstd-dev libluajit-5.1-dev gettext \
  15. git
  16. RUN git clone https://github.com/luanti-org/luanti minetest && \
  17. cd minetest && \
  18. git checkout ${VERSION}
  19. RUN chdir minetest && \
  20. cmake . -DRUN_IN_PLACE=TRUE -DBUILD_SEVER=TRUE -DBUILD_CLIENT=FALSE && \
  21. make -j$(nproc)
  22. from debian:buster-slim as final
  23. WORKDIR /minetest
  24. RUN apt-get update && \
  25. apt-get install -y \
  26. libsqlite3-0 libcc1-0 libgmpxx4ldbl \
  27. librtmp1 libcurl3-gnutls libzstd-dev \
  28. libjsoncpp-dev libluajit-5.1 gettext \
  29. libatomic1 \
  30. && apt-get clean && rm -rf /var/lib/apt/lists/*
  31. COPY --from=builder /minetest/minetest/bin/luantiserver /minetest/bin/server
  32. COPY --from=builder /minetest/minetest/textures /minetest/textures
  33. COPY --from=builder /minetest/minetest/builtin /minetest/builtin
  34. EXPOSE 30000
  35. #EXPOSE 8080
  36. CMD ["./bin/server", "--worldname", "world"]