FROM docker.io/library/alpine:3.14
# we need bash for luaver:
RUN apk add --no-cache bash && echo "" > /root/.ash_history
RUN sed -i -e "s/bin\/ash/bin\/bash/" /etc/passwd
ENV LC_ALL=en_US.UTF-8
# requirements for various luarocks packages:
RUN apk add --no-cache build-base bsd-compat-headers m4 openssl-dev libmagic libuuid lmdb lmdb-dev git readline-dev autoconf automake libtool zlib-dev vips ncurses wget unzip openssl util-linux-dev
# install luaver and install luarocks packages:
RUN ln -s /usr/lib/libvips.so.42 /usr/lib/libvips.so \
    && git config --global url."https://".insteadOf git:// \
    && git clone https://git.sakal.us/brian/luaver.git ~/.luaver
RUN ["bash", "-c", "\
    { . ~/.luaver/luaver; } \
    ;  { yes | luaver install 5.1.5; } \
    && { yes | luaver install-luajit 2.0.5; } \
    && luaver use 5.1.5 && luaver set-default 5.1.5 \
    && luaver use-luajit 2.0.5 && luaver set-default-luajit 2.0.5 \
    && { yes | luaver install-luarocks 3.8.0; } \
    && luaver use-luarocks 3.8.0 && luaver set-default-luarocks 3.8.0 \
    && luarocks install luarocks-fetch-gitrec \
    && luarocks install compat53 \
    && luarocks install cqueues \
    && luarocks install lpeg \
    && luarocks install lpeg_patterns \
    && luarocks install luafilesystem \
    && luarocks install http \
    && luarocks install lua-cjson \
    && luarocks install mimetypes \
    && luarocks install lrandom \
    && luarocks install luaprompt \
    && luarocks install magic \
    && luarocks install lightningmdb \
    && luarocks install lua_uuid \
    && luarocks install lua-vips"]
WORKDIR /app/server
EXPOSE 8000
CMD ["bash", "-c", "{ . ~/.luaver/luaver; } ; luajit ./server.lua"]