Docker image which provides a full Eressea installation to host a local game.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

93 lines
3.7 KiB

3 weeks ago
  1. # develop, master
  2. ARG echeck_branch=master
  3. ARG eressea_branch=develop
  4. #-------------------------------------------------------------------------------
  5. FROM debian:buster-slim as builder
  6. RUN apt-get update && \
  7. apt-get install -y git gcc make gettext
  8. #-------------------------------------------------------------------------------
  9. # version 4.4.9 will not work in buster (segmentation fault)
  10. FROM builder as echeck-master
  11. RUN apt-get install -y curl && \
  12. curl -s https://packagecloud.io/install/repositories/enno/eressea/script.deb.sh | bash && \
  13. apt-get install echeck=4.4.9 && \
  14. mkdir -p /usr/share/locale/de/LC_MESSAGES
  15. #-------------------------------------------------------------------------------
  16. FROM builder as echeck-develop
  17. RUN git clone -b master https://github.com/eressea/echeck.git git.echeck && \
  18. cd git.echeck && \
  19. mkdir -p /usr/share/locale/de/LC_MESSAGES && \
  20. make install
  21. #-------------------------------------------------------------------------------
  22. FROM echeck-${echeck_branch} as eressea-base
  23. COPY docker-assets/check-orders.sh.patch /eressea/
  24. RUN mkdir -p /eressea/server && \
  25. cd /eressea && \
  26. git clone -b master https://github.com/eressea/orders-php.git git.orders-php && \
  27. cd /eressea/git.orders-php && \
  28. patch check-orders.sh < /eressea/check-orders.sh.patch && \
  29. make install
  30. #-------------------------------------------------------------------------------
  31. FROM eressea-base as eressea
  32. ARG eressea_branch
  33. COPY docker-assets/backup-eressea.patch /eressea/
  34. COPY docker-assets/create-orders.patch /eressea/
  35. RUN DEBIAN_FRONTEND="noninteractive" apt-get install -y \
  36. cmake luarocks libxml2-dev liblua5.2-dev libtolua-dev libncurses5-dev libsqlite3-dev \
  37. libexpat1-dev && \
  38. cd /eressea && \
  39. git clone -b $eressea_branch https://github.com/eressea/server.git git.eressea && \
  40. cd git.eressea && \
  41. git submodule update --init && \
  42. patch process/backup-eressea < /eressea/backup-eressea.patch && \
  43. s/cmake-init && \
  44. s/build && \
  45. ln -sf conf/eressea.ini && \
  46. s/install -f
  47. #-------------------------------------------------------------------------------
  48. FROM debian:buster-slim as final-image
  49. ARG echeck_branch
  50. ARG eressea_branch
  51. LABEL version="eressea-${eressea_branch}.echeck-${echeck_branch}"
  52. LABEL maintainer="juergen.holly@jacs.at"
  53. LABEL description="Pbem Eressea"
  54. ENV LANG=C.UTF-8
  55. ENV LC_ALL=C.UTF-8
  56. ENV ERESSEA=/data
  57. ENV PATH="${PATH}:/usr/games"
  58. RUN apt-get update && \
  59. apt-get install -y liblua5.2-0 libsqlite3-0 libncurses5 libreadline7 libexpat1 python python-pip mutt nano \
  60. logrotate pwgen zip luarocks fetchmail procmail php7.3 gettext php7.3-sqlite && \
  61. apt-get clean && \
  62. rm -rf /var/lib/apt/lists/* && \
  63. pip install bcrypt j2cli && \
  64. apt-get autoremove -y && \
  65. sed --in-place '/en_US.UTF-8/s/^# //' /etc/locale.gen && \
  66. sed --in-place '/de_DE.UTF-8/s/^# //' /etc/locale.gen && \
  67. locale-gen
  68. COPY docker-assets/template-config/ /eressea/template-config/
  69. COPY docker-assets/lua-scripts/ /eressea/lua-scripts/
  70. COPY docker-assets/run-eressea.sh /eressea/run-eressea.sh
  71. COPY docker-assets/start.sh /eressea/start.sh
  72. COPY --from=eressea /eressea/server/ /eressea/server/
  73. COPY --from=eressea /eressea/git.eressea/scripts/tools /eressea/server/scripts/tools
  74. COPY --from=eressea /eressea/git.eressea/s/preview /eressea/server/bin/
  75. COPY --from=eressea /usr/games/echeck /usr/games/echeck
  76. COPY --from=eressea /usr/share/locale/de/LC_MESSAGES/ /usr/share/locale/de/LC_MESSAGES/
  77. COPY --from=eressea /usr/share/games/echeck/ /usr/share/games/echeck/
  78. COPY --from=eressea /eressea/git.orders-php/ /eressea/orders-php/
  79. VOLUME ["/data"]
  80. WORKDIR /data
  81. ENTRYPOINT ["/eressea/start.sh"]
  82. CMD ["help"]