FROM debian:bookworm-slim as builder ENV DEBIAN_FRONTEND=noninteractive WORKDIR /build RUN --mount=type=cache,target=/var/cache/apt,id=builder-apt \ set -e; \ apt-get update; \ apt-get install -y --no-install-recommends --no-install-suggests \ ca-certificates \ cmake \ gcc \ g++ \ libc-dev \ libreadline-dev \ make \ stow \ unzip \ wget \ xz-utils; ARG LUA_5_1_VERSION=5.1.5 ADD http://www.lua.org/ftp/lua-${LUA_5_1_VERSION}.tar.gz /build/lua-5.1.tar.gz RUN set -e; \ tar -xzf /build/lua-5.1.tar.gz; \ cd lua-${LUA_5_1_VERSION}/src; \ make -j $(nproc) all MYCFLAGS="-DLUA_USE_LINUX -fPIC" MYLIBS="-Wl,-E -ldl -lreadline -lhistory -lncurses"; \ cd ..; \ make INSTALL_TOP=/usr/local/stow/lua5.1 install ARG LUA_5_2_VERSION=5.2.4 ADD http://www.lua.org/ftp/lua-${LUA_5_2_VERSION}.tar.gz /build/lua-5.2.tar.gz RUN set -e; \ tar -xzf /build/lua-5.2.tar.gz; \ cd lua-${LUA_5_2_VERSION}/src; \ make -j $(nproc) linux MYCFLAGS="-fPIC"; \ cd ..; \ make INSTALL_TOP=/usr/local/stow/lua5.2 install ARG LUA_5_3_VERSION=5.3.6 ADD http://www.lua.org/ftp/lua-${LUA_5_3_VERSION}.tar.gz /build/lua-5.3.tar.gz RUN set -e; \ tar -xzf /build/lua-5.3.tar.gz; \ cd lua-${LUA_5_3_VERSION}/src; \ make -j $(nproc) linux MYCFLAGS="-fPIC"; \ cd ..; \ make INSTALL_TOP=/usr/local/stow/lua5.3 install ARG LUA_5_4_VERSION=5.4.4 ADD http://www.lua.org/ftp/lua-${LUA_5_4_VERSION}.tar.gz /build/lua-5.4.tar.gz RUN set -e; \ tar -xzf /build/lua-5.4.tar.gz; \ cd lua-${LUA_5_4_VERSION}/src; \ make -j $(nproc) linux MYCFLAGS="-fPIC"; \ cd ..; \ make INSTALL_TOP=/usr/local/stow/lua5.4 install ARG LUAROCKS_VERSION=3.10.0 ADD https://luarocks.org/releases/luarocks-${LUAROCKS_VERSION}.tar.gz /build/luarocks.tar.gz RUN set -e; \ tar -xzf /build/luarocks.tar.gz; \ cd luarocks-${LUAROCKS_VERSION}; \ ./configure --prefix=/usr --with-lua=/usr/local/stow/lua5.4; \ make -j $(nproc); \ make install ARG DART_SASS_VERSION=1.71.1 ADD https://github.com/sass/dart-sass/releases/download/${DART_SASS_VERSION}/dart-sass-${DART_SASS_VERSION}-linux-x64.tar.gz /build/sass.tar.gz RUN tar -xzf /build/sass.tar.gz -C /usr/local/bin --strip-components=1 dart-sass/sass ARG NODE_VERSION=20.11.1 ADD https://nodejs.org/dist/v${NODE_VERSION}/node-v${NODE_VERSION}-linux-x64.tar.xz /build/node.tar.xz RUN set -e; \ mkdir -p /usr/local/stow/node; \ tar -xJf /build/node.tar.xz -C /usr/local/stow/node --strip-components=1 \ --wildcards --no-wildcards-match-slash '*/bin/' '*/include/' '*/lib/'; \ stow -d /usr/local/stow -t /usr/local -S node RUN --mount=type=cache,target=/var/cache/luarocks \ set -e; \ luarocks install ldoc; \ luarocks install lua-discount FROM debian:bookworm-slim ENV DEBIAN_FRONTEND=noninteractive RUN --mount=type=cache,target=/var/cache/apt,id=apt \ set -e; \ apt-get update; \ apt-get install -y --no-install-recommends --no-install-suggests \ ca-certificates \ cmake \ curl \ gcc \ g++ \ libc-dev \ libreadline-dev \ make \ sudo \ unzip \ wget; \ apt-get remove --auto-remove vim; \ rm -rf \ /usr/share/cmake-*/Help \ /var/lib/apt/lists/* \ /var/log/* \ /usr/local/share/doc/* \ /usr/local/share/man/* \ /usr/share/doc/* \ /usr/share/man/* COPY --from=builder /usr/local /usr/local WORKDIR / COPY pkgconfig/*.pc /usr/lib/pkgconfig/ COPY enable-lua disable-lua run-with-lua /usr/bin/