├── update-ci ├── docker-push.erb ├── docker-build.erb ├── test.erb ├── luajit-2.1 ├── alpine3.22 │ └── Dockerfile ├── alpine3.23 │ └── Dockerfile ├── lua52compat-alpine3.22 │ └── Dockerfile ├── lua52compat-alpine3.23 │ └── Dockerfile ├── plucky │ └── Dockerfile ├── trixie │ └── Dockerfile ├── bookworm │ └── Dockerfile ├── rolling │ └── Dockerfile ├── lua52compat-plucky │ └── Dockerfile ├── lua52compat-trixie │ └── Dockerfile ├── lua52compat-bookworm │ └── Dockerfile ├── lua52compat-rolling │ └── Dockerfile ├── luarocks-alpine3.22 │ └── Dockerfile ├── luarocks-alpine3.23 │ └── Dockerfile ├── lua52compat-luarocks-alpine3.22 │ └── Dockerfile ├── lua52compat-luarocks-alpine3.23 │ └── Dockerfile ├── luarocks-plucky │ └── Dockerfile ├── luarocks-trixie │ └── Dockerfile ├── luarocks-bookworm │ └── Dockerfile ├── luarocks-rolling │ └── Dockerfile ├── lua52compat-luarocks-plucky │ └── Dockerfile ├── lua52compat-luarocks-rolling │ └── Dockerfile ├── lua52compat-luarocks-trixie │ └── Dockerfile └── lua52compat-luarocks-bookworm │ └── Dockerfile ├── LICENSE.txt ├── lua-5.2 ├── alpine3.22 │ └── Dockerfile ├── alpine3.23 │ └── Dockerfile ├── plucky │ └── Dockerfile ├── trixie │ └── Dockerfile ├── bookworm │ └── Dockerfile ├── rolling │ └── Dockerfile ├── luarocks-alpine3.22 │ └── Dockerfile ├── luarocks-alpine3.23 │ └── Dockerfile ├── luarocks-plucky │ └── Dockerfile ├── luarocks-rolling │ └── Dockerfile ├── luarocks-trixie │ └── Dockerfile └── luarocks-bookworm │ └── Dockerfile ├── lua-5.3 ├── alpine3.22 │ └── Dockerfile ├── alpine3.23 │ └── Dockerfile ├── plucky │ └── Dockerfile ├── trixie │ └── Dockerfile ├── bookworm │ └── Dockerfile ├── rolling │ └── Dockerfile ├── luarocks-alpine3.22 │ └── Dockerfile ├── luarocks-alpine3.23 │ └── Dockerfile ├── luarocks-plucky │ └── Dockerfile ├── luarocks-rolling │ └── Dockerfile ├── luarocks-trixie │ └── Dockerfile └── luarocks-bookworm │ └── Dockerfile ├── lua-5.4 ├── alpine3.22 │ └── Dockerfile ├── alpine3.23 │ └── Dockerfile ├── plucky │ └── Dockerfile ├── trixie │ └── Dockerfile ├── bookworm │ └── Dockerfile ├── rolling │ └── Dockerfile ├── luarocks-alpine3.22 │ └── Dockerfile ├── luarocks-alpine3.23 │ └── Dockerfile ├── luarocks-plucky │ └── Dockerfile ├── luarocks-rolling │ └── Dockerfile ├── luarocks-trixie │ └── Dockerfile └── luarocks-bookworm │ └── Dockerfile ├── test.sh ├── README.lua.md.erb ├── .github └── workflows │ └── main.yml ├── README.luajit.md.erb ├── README.md.erb ├── Dockerfile.erb ├── README.lua.md ├── README.luajit.md ├── update ├── README.md └── docker-build /update-ci: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -Eeuxo pipefail 4 | 5 | ./update 6 | 7 | if [[ -n $(git status --porcelain) ]]; then 8 | git config --global user.name "$GITHUB_ACTOR" 9 | git config --global user.email "$GITHUB_ACTOR@users.noreply.github.com" 10 | git add -A 11 | git commit -m "Automated updates" 12 | set +x 13 | git remote set-url --push origin "https://${GITHUB_ACTOR}:${GITHUB_TOKEN}@github.com/${GITHUB_REPOSITORY}.git" 14 | set -x 15 | git push origin HEAD:main 16 | fi 17 | -------------------------------------------------------------------------------- /docker-push.erb: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -Eeuxo pipefail 4 | 5 | <%- tags.each do |lang, variant_versions| -%> 6 | <%- variant_versions.each do |data| -%> 7 | docker buildx build \ 8 | --platform '<%= data.fetch(:platforms).join(",") %>' \ 9 | --push \ 10 | --cache-from '<%= "type=registry,ref=#{data.fetch(:build_cache_tag)}" %>' \ 11 | <%= data.fetch(:docker_image_tags).map { |tag| "--tag '#{tag}'" }.join(" ") %> \ 12 | --file <%= data.fetch(:filename) %> \ 13 | . 14 | <%- end -%> 15 | <%- end -%> 16 | -------------------------------------------------------------------------------- /docker-build.erb: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -Eeuxo pipefail 4 | 5 | <%- tags.each do |lang, variant_versions| -%> 6 | <%- variant_versions.each do |data| -%> 7 | docker buildx build \ 8 | --platform '<%= data.fetch(:platforms).join(",") %>' \ 9 | --pull \ 10 | --push \ 11 | --cache-from '<%= "type=registry,ref=#{data.fetch(:build_cache_tag)}" %>' \ 12 | --cache-to '<%= "type=registry,ref=#{data.fetch(:build_cache_tag)},mode=max" %>' \ 13 | --tag '<%= "localhost:5000/#{data.fetch(:build_cache_tag)}" %>' \ 14 | --file <%= data.fetch(:filename) %> \ 15 | . 16 | <%- end -%> 17 | <%- end -%> 18 | -------------------------------------------------------------------------------- /test.erb: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -Eeuo pipefail 4 | exitcode=0 5 | 6 | <%- tags.each do |lang, variant_versions| -%> 7 | <%- variant_versions.each do |data| -%> 8 | printf "<%= data.fetch(:variant_tag) %>: " 9 | output=$(docker run -v $(pwd)/test.sh:/test.sh -e "LANG=<%= lang %>" -e "LUAROCKS=<%= data.fetch(:variant).include?("luarocks") ? "true" : "false" %>" --rm '<%= "localhost:5000/#{data.fetch(:build_cache_tag)}" %>' /test.sh 2>&1 || true) 10 | if [[ "$output" =~ "Lua Tests: Error" ]]; then 11 | exitcode=1 12 | echo "Error" 13 | echo "$output" 14 | echo 15 | elif [[ "$output" =~ "Lua Tests: OK" ]]; then 16 | echo "OK" 17 | else 18 | exitcode=1 19 | echo "Unexpected Error" 20 | echo "$output" 21 | echo 22 | fi 23 | 24 | <%- end -%> 25 | <%- end -%> 26 | 27 | exit "$exitcode" 28 | -------------------------------------------------------------------------------- /luajit-2.1/alpine3.22/Dockerfile: -------------------------------------------------------------------------------- 1 | # AUTOMATICALLY GENERATED 2 | # DO NOT EDIT THIS FILE DIRECTLY. Edit /Dockerfile.erb and run /update instead. 3 | 4 | FROM alpine:3.22.2 5 | 6 | RUN set -ex \ 7 | && apk add --no-cache --virtual .lua-builddeps \ 8 | ca-certificates \ 9 | curl \ 10 | gcc \ 11 | libc-dev \ 12 | make \ 13 | && curl -fsSL -o /tmp/lua.tar.gz "https://github.com/LuaJIT/LuaJIT/archive/7152e15489d2077cd299ee23e3d51a4c599ab14f.tar.gz" \ 14 | && cd /tmp \ 15 | && mkdir /tmp/lua \ 16 | && tar -xf /tmp/lua.tar.gz -C /tmp/lua --strip-components=1 \ 17 | && cd /tmp/lua \ 18 | && make \ 19 | && make install \ 20 | && cd / \ 21 | && apk add --no-network --no-cache --virtual .lua-rundeps \ 22 | libgcc \ 23 | && apk del --no-network .lua-builddeps \ 24 | && rm -rf /tmp/lua /tmp/lua.tar.gz \ 25 | && luajit -v 26 | 27 | CMD ["luajit"] 28 | 29 | LABEL org.opencontainers.image.source="https://github.com/GUI/lua-docker" \ 30 | org.opencontainers.image.licenses="MIT" 31 | -------------------------------------------------------------------------------- /luajit-2.1/alpine3.23/Dockerfile: -------------------------------------------------------------------------------- 1 | # AUTOMATICALLY GENERATED 2 | # DO NOT EDIT THIS FILE DIRECTLY. Edit /Dockerfile.erb and run /update instead. 3 | 4 | FROM alpine:3.23.0 5 | 6 | RUN set -ex \ 7 | && apk add --no-cache --virtual .lua-builddeps \ 8 | ca-certificates \ 9 | curl \ 10 | gcc \ 11 | libc-dev \ 12 | make \ 13 | && curl -fsSL -o /tmp/lua.tar.gz "https://github.com/LuaJIT/LuaJIT/archive/7152e15489d2077cd299ee23e3d51a4c599ab14f.tar.gz" \ 14 | && cd /tmp \ 15 | && mkdir /tmp/lua \ 16 | && tar -xf /tmp/lua.tar.gz -C /tmp/lua --strip-components=1 \ 17 | && cd /tmp/lua \ 18 | && make \ 19 | && make install \ 20 | && cd / \ 21 | && apk add --no-network --no-cache --virtual .lua-rundeps \ 22 | libgcc \ 23 | && apk del --no-network .lua-builddeps \ 24 | && rm -rf /tmp/lua /tmp/lua.tar.gz \ 25 | && luajit -v 26 | 27 | CMD ["luajit"] 28 | 29 | LABEL org.opencontainers.image.source="https://github.com/GUI/lua-docker" \ 30 | org.opencontainers.image.licenses="MIT" 31 | -------------------------------------------------------------------------------- /luajit-2.1/lua52compat-alpine3.22/Dockerfile: -------------------------------------------------------------------------------- 1 | # AUTOMATICALLY GENERATED 2 | # DO NOT EDIT THIS FILE DIRECTLY. Edit /Dockerfile.erb and run /update instead. 3 | 4 | FROM alpine:3.22.2 5 | 6 | RUN set -ex \ 7 | && apk add --no-cache --virtual .lua-builddeps \ 8 | ca-certificates \ 9 | curl \ 10 | gcc \ 11 | libc-dev \ 12 | make \ 13 | && curl -fsSL -o /tmp/lua.tar.gz "https://github.com/LuaJIT/LuaJIT/archive/7152e15489d2077cd299ee23e3d51a4c599ab14f.tar.gz" \ 14 | && cd /tmp \ 15 | && mkdir /tmp/lua \ 16 | && tar -xf /tmp/lua.tar.gz -C /tmp/lua --strip-components=1 \ 17 | && cd /tmp/lua \ 18 | && make CFLAGS="-DLUAJIT_ENABLE_LUA52COMPAT" \ 19 | && make install \ 20 | && cd / \ 21 | && apk add --no-network --no-cache --virtual .lua-rundeps \ 22 | libgcc \ 23 | && apk del --no-network .lua-builddeps \ 24 | && rm -rf /tmp/lua /tmp/lua.tar.gz \ 25 | && luajit -v 26 | 27 | CMD ["luajit"] 28 | 29 | LABEL org.opencontainers.image.source="https://github.com/GUI/lua-docker" \ 30 | org.opencontainers.image.licenses="MIT" 31 | -------------------------------------------------------------------------------- /luajit-2.1/lua52compat-alpine3.23/Dockerfile: -------------------------------------------------------------------------------- 1 | # AUTOMATICALLY GENERATED 2 | # DO NOT EDIT THIS FILE DIRECTLY. Edit /Dockerfile.erb and run /update instead. 3 | 4 | FROM alpine:3.23.0 5 | 6 | RUN set -ex \ 7 | && apk add --no-cache --virtual .lua-builddeps \ 8 | ca-certificates \ 9 | curl \ 10 | gcc \ 11 | libc-dev \ 12 | make \ 13 | && curl -fsSL -o /tmp/lua.tar.gz "https://github.com/LuaJIT/LuaJIT/archive/7152e15489d2077cd299ee23e3d51a4c599ab14f.tar.gz" \ 14 | && cd /tmp \ 15 | && mkdir /tmp/lua \ 16 | && tar -xf /tmp/lua.tar.gz -C /tmp/lua --strip-components=1 \ 17 | && cd /tmp/lua \ 18 | && make CFLAGS="-DLUAJIT_ENABLE_LUA52COMPAT" \ 19 | && make install \ 20 | && cd / \ 21 | && apk add --no-network --no-cache --virtual .lua-rundeps \ 22 | libgcc \ 23 | && apk del --no-network .lua-builddeps \ 24 | && rm -rf /tmp/lua /tmp/lua.tar.gz \ 25 | && luajit -v 26 | 27 | CMD ["luajit"] 28 | 29 | LABEL org.opencontainers.image.source="https://github.com/GUI/lua-docker" \ 30 | org.opencontainers.image.licenses="MIT" 31 | -------------------------------------------------------------------------------- /LICENSE.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) 2018 Nick Muerdter 2 | 3 | MIT License 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining 6 | a copy of this software and associated documentation files (the 7 | "Software"), to deal in the Software without restriction, including 8 | without limitation the rights to use, copy, modify, merge, publish, 9 | distribute, sublicense, and/or sell copies of the Software, and to 10 | permit persons to whom the Software is furnished to do so, subject to 11 | the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be 14 | included in all copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 17 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 18 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 19 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 20 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 21 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 22 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 23 | -------------------------------------------------------------------------------- /lua-5.2/alpine3.22/Dockerfile: -------------------------------------------------------------------------------- 1 | # AUTOMATICALLY GENERATED 2 | # DO NOT EDIT THIS FILE DIRECTLY. Edit /Dockerfile.erb and run /update instead. 3 | 4 | FROM alpine:3.22.2 5 | 6 | RUN set -ex \ 7 | && apk add --no-cache --virtual .lua-builddeps \ 8 | ca-certificates \ 9 | curl \ 10 | gcc \ 11 | libc-dev \ 12 | make \ 13 | readline-dev \ 14 | && curl -fsSL -o /tmp/lua.tar.gz "https://www.lua.org/ftp/lua-5.2.4.tar.gz" \ 15 | && cd /tmp \ 16 | && echo "b9e2e4aad6789b3b63a056d442f7b39f0ecfca3ae0f1fc0ae4e9614401b69f4b *lua.tar.gz" | sha256sum -c - \ 17 | && mkdir /tmp/lua \ 18 | && tar -xf /tmp/lua.tar.gz -C /tmp/lua --strip-components=1 \ 19 | && cd /tmp/lua \ 20 | && make linux \ 21 | && make install \ 22 | && cd / \ 23 | && apk add --no-network --no-cache --virtual .lua-rundeps \ 24 | readline \ 25 | && apk del --no-network .lua-builddeps \ 26 | && rm -rf /tmp/lua /tmp/lua.tar.gz \ 27 | && lua -v 28 | 29 | CMD ["lua"] 30 | 31 | LABEL org.opencontainers.image.source="https://github.com/GUI/lua-docker" \ 32 | org.opencontainers.image.licenses="MIT" 33 | -------------------------------------------------------------------------------- /lua-5.2/alpine3.23/Dockerfile: -------------------------------------------------------------------------------- 1 | # AUTOMATICALLY GENERATED 2 | # DO NOT EDIT THIS FILE DIRECTLY. Edit /Dockerfile.erb and run /update instead. 3 | 4 | FROM alpine:3.23.0 5 | 6 | RUN set -ex \ 7 | && apk add --no-cache --virtual .lua-builddeps \ 8 | ca-certificates \ 9 | curl \ 10 | gcc \ 11 | libc-dev \ 12 | make \ 13 | readline-dev \ 14 | && curl -fsSL -o /tmp/lua.tar.gz "https://www.lua.org/ftp/lua-5.2.4.tar.gz" \ 15 | && cd /tmp \ 16 | && echo "b9e2e4aad6789b3b63a056d442f7b39f0ecfca3ae0f1fc0ae4e9614401b69f4b *lua.tar.gz" | sha256sum -c - \ 17 | && mkdir /tmp/lua \ 18 | && tar -xf /tmp/lua.tar.gz -C /tmp/lua --strip-components=1 \ 19 | && cd /tmp/lua \ 20 | && make linux \ 21 | && make install \ 22 | && cd / \ 23 | && apk add --no-network --no-cache --virtual .lua-rundeps \ 24 | readline \ 25 | && apk del --no-network .lua-builddeps \ 26 | && rm -rf /tmp/lua /tmp/lua.tar.gz \ 27 | && lua -v 28 | 29 | CMD ["lua"] 30 | 31 | LABEL org.opencontainers.image.source="https://github.com/GUI/lua-docker" \ 32 | org.opencontainers.image.licenses="MIT" 33 | -------------------------------------------------------------------------------- /lua-5.3/alpine3.22/Dockerfile: -------------------------------------------------------------------------------- 1 | # AUTOMATICALLY GENERATED 2 | # DO NOT EDIT THIS FILE DIRECTLY. Edit /Dockerfile.erb and run /update instead. 3 | 4 | FROM alpine:3.22.2 5 | 6 | RUN set -ex \ 7 | && apk add --no-cache --virtual .lua-builddeps \ 8 | ca-certificates \ 9 | curl \ 10 | gcc \ 11 | libc-dev \ 12 | make \ 13 | readline-dev \ 14 | && curl -fsSL -o /tmp/lua.tar.gz "https://www.lua.org/ftp/lua-5.3.6.tar.gz" \ 15 | && cd /tmp \ 16 | && echo "fc5fd69bb8736323f026672b1b7235da613d7177e72558893a0bdcd320466d60 *lua.tar.gz" | sha256sum -c - \ 17 | && mkdir /tmp/lua \ 18 | && tar -xf /tmp/lua.tar.gz -C /tmp/lua --strip-components=1 \ 19 | && cd /tmp/lua \ 20 | && make linux \ 21 | && make install \ 22 | && cd / \ 23 | && apk add --no-network --no-cache --virtual .lua-rundeps \ 24 | readline \ 25 | && apk del --no-network .lua-builddeps \ 26 | && rm -rf /tmp/lua /tmp/lua.tar.gz \ 27 | && lua -v 28 | 29 | CMD ["lua"] 30 | 31 | LABEL org.opencontainers.image.source="https://github.com/GUI/lua-docker" \ 32 | org.opencontainers.image.licenses="MIT" 33 | -------------------------------------------------------------------------------- /lua-5.3/alpine3.23/Dockerfile: -------------------------------------------------------------------------------- 1 | # AUTOMATICALLY GENERATED 2 | # DO NOT EDIT THIS FILE DIRECTLY. Edit /Dockerfile.erb and run /update instead. 3 | 4 | FROM alpine:3.23.0 5 | 6 | RUN set -ex \ 7 | && apk add --no-cache --virtual .lua-builddeps \ 8 | ca-certificates \ 9 | curl \ 10 | gcc \ 11 | libc-dev \ 12 | make \ 13 | readline-dev \ 14 | && curl -fsSL -o /tmp/lua.tar.gz "https://www.lua.org/ftp/lua-5.3.6.tar.gz" \ 15 | && cd /tmp \ 16 | && echo "fc5fd69bb8736323f026672b1b7235da613d7177e72558893a0bdcd320466d60 *lua.tar.gz" | sha256sum -c - \ 17 | && mkdir /tmp/lua \ 18 | && tar -xf /tmp/lua.tar.gz -C /tmp/lua --strip-components=1 \ 19 | && cd /tmp/lua \ 20 | && make linux \ 21 | && make install \ 22 | && cd / \ 23 | && apk add --no-network --no-cache --virtual .lua-rundeps \ 24 | readline \ 25 | && apk del --no-network .lua-builddeps \ 26 | && rm -rf /tmp/lua /tmp/lua.tar.gz \ 27 | && lua -v 28 | 29 | CMD ["lua"] 30 | 31 | LABEL org.opencontainers.image.source="https://github.com/GUI/lua-docker" \ 32 | org.opencontainers.image.licenses="MIT" 33 | -------------------------------------------------------------------------------- /lua-5.4/alpine3.22/Dockerfile: -------------------------------------------------------------------------------- 1 | # AUTOMATICALLY GENERATED 2 | # DO NOT EDIT THIS FILE DIRECTLY. Edit /Dockerfile.erb and run /update instead. 3 | 4 | FROM alpine:3.22.2 5 | 6 | RUN set -ex \ 7 | && apk add --no-cache --virtual .lua-builddeps \ 8 | ca-certificates \ 9 | curl \ 10 | gcc \ 11 | libc-dev \ 12 | make \ 13 | readline-dev \ 14 | && curl -fsSL -o /tmp/lua.tar.gz "https://www.lua.org/ftp/lua-5.4.8.tar.gz" \ 15 | && cd /tmp \ 16 | && echo "4f18ddae154e793e46eeab727c59ef1c0c0c2b744e7b94219710d76f530629ae *lua.tar.gz" | sha256sum -c - \ 17 | && mkdir /tmp/lua \ 18 | && tar -xf /tmp/lua.tar.gz -C /tmp/lua --strip-components=1 \ 19 | && cd /tmp/lua \ 20 | && make linux \ 21 | && make install \ 22 | && cd / \ 23 | && apk add --no-network --no-cache --virtual .lua-rundeps \ 24 | readline \ 25 | && apk del --no-network .lua-builddeps \ 26 | && rm -rf /tmp/lua /tmp/lua.tar.gz \ 27 | && lua -v 28 | 29 | CMD ["lua"] 30 | 31 | LABEL org.opencontainers.image.source="https://github.com/GUI/lua-docker" \ 32 | org.opencontainers.image.licenses="MIT" 33 | -------------------------------------------------------------------------------- /lua-5.4/alpine3.23/Dockerfile: -------------------------------------------------------------------------------- 1 | # AUTOMATICALLY GENERATED 2 | # DO NOT EDIT THIS FILE DIRECTLY. Edit /Dockerfile.erb and run /update instead. 3 | 4 | FROM alpine:3.23.0 5 | 6 | RUN set -ex \ 7 | && apk add --no-cache --virtual .lua-builddeps \ 8 | ca-certificates \ 9 | curl \ 10 | gcc \ 11 | libc-dev \ 12 | make \ 13 | readline-dev \ 14 | && curl -fsSL -o /tmp/lua.tar.gz "https://www.lua.org/ftp/lua-5.4.8.tar.gz" \ 15 | && cd /tmp \ 16 | && echo "4f18ddae154e793e46eeab727c59ef1c0c0c2b744e7b94219710d76f530629ae *lua.tar.gz" | sha256sum -c - \ 17 | && mkdir /tmp/lua \ 18 | && tar -xf /tmp/lua.tar.gz -C /tmp/lua --strip-components=1 \ 19 | && cd /tmp/lua \ 20 | && make linux \ 21 | && make install \ 22 | && cd / \ 23 | && apk add --no-network --no-cache --virtual .lua-rundeps \ 24 | readline \ 25 | && apk del --no-network .lua-builddeps \ 26 | && rm -rf /tmp/lua /tmp/lua.tar.gz \ 27 | && lua -v 28 | 29 | CMD ["lua"] 30 | 31 | LABEL org.opencontainers.image.source="https://github.com/GUI/lua-docker" \ 32 | org.opencontainers.image.licenses="MIT" 33 | -------------------------------------------------------------------------------- /luajit-2.1/plucky/Dockerfile: -------------------------------------------------------------------------------- 1 | # AUTOMATICALLY GENERATED 2 | # DO NOT EDIT THIS FILE DIRECTLY. Edit /Dockerfile.erb and run /update instead. 3 | 4 | FROM ubuntu:plucky-20251001 5 | 6 | RUN set -ex \ 7 | && saved_apt_mark="$(apt-mark showmanual)" \ 8 | && apt-get update \ 9 | && apt-get install -y --no-install-recommends \ 10 | ca-certificates \ 11 | curl \ 12 | gcc \ 13 | libc6-dev \ 14 | make \ 15 | && curl -fsSL -o /tmp/lua.tar.gz "https://github.com/LuaJIT/LuaJIT/archive/7152e15489d2077cd299ee23e3d51a4c599ab14f.tar.gz" \ 16 | && cd /tmp \ 17 | && mkdir /tmp/lua \ 18 | && tar -xf /tmp/lua.tar.gz -C /tmp/lua --strip-components=1 \ 19 | && cd /tmp/lua \ 20 | && make \ 21 | && make install \ 22 | && cd / \ 23 | && apt-mark auto '.*' > /dev/null \ 24 | && if [ -n "$saved_apt_mark" ]; then \ 25 | apt-mark manual $saved_apt_mark; \ 26 | fi \ 27 | && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \ 28 | && rm -rf /var/lib/apt/lists/* /var/lib/dpkg/*-old /var/cache/* /var/log/* \ 29 | && rm -rf /tmp/lua /tmp/lua.tar.gz \ 30 | && luajit -v 31 | 32 | CMD ["luajit"] 33 | 34 | LABEL org.opencontainers.image.source="https://github.com/GUI/lua-docker" \ 35 | org.opencontainers.image.licenses="MIT" 36 | -------------------------------------------------------------------------------- /luajit-2.1/trixie/Dockerfile: -------------------------------------------------------------------------------- 1 | # AUTOMATICALLY GENERATED 2 | # DO NOT EDIT THIS FILE DIRECTLY. Edit /Dockerfile.erb and run /update instead. 3 | 4 | FROM debian:trixie-20251208 5 | 6 | RUN set -ex \ 7 | && saved_apt_mark="$(apt-mark showmanual)" \ 8 | && apt-get update \ 9 | && apt-get install -y --no-install-recommends \ 10 | ca-certificates \ 11 | curl \ 12 | gcc \ 13 | libc6-dev \ 14 | make \ 15 | && curl -fsSL -o /tmp/lua.tar.gz "https://github.com/LuaJIT/LuaJIT/archive/7152e15489d2077cd299ee23e3d51a4c599ab14f.tar.gz" \ 16 | && cd /tmp \ 17 | && mkdir /tmp/lua \ 18 | && tar -xf /tmp/lua.tar.gz -C /tmp/lua --strip-components=1 \ 19 | && cd /tmp/lua \ 20 | && make \ 21 | && make install \ 22 | && cd / \ 23 | && apt-mark auto '.*' > /dev/null \ 24 | && if [ -n "$saved_apt_mark" ]; then \ 25 | apt-mark manual $saved_apt_mark; \ 26 | fi \ 27 | && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \ 28 | && rm -rf /var/lib/apt/lists/* /var/lib/dpkg/*-old /var/cache/* /var/log/* \ 29 | && rm -rf /tmp/lua /tmp/lua.tar.gz \ 30 | && luajit -v 31 | 32 | CMD ["luajit"] 33 | 34 | LABEL org.opencontainers.image.source="https://github.com/GUI/lua-docker" \ 35 | org.opencontainers.image.licenses="MIT" 36 | -------------------------------------------------------------------------------- /luajit-2.1/bookworm/Dockerfile: -------------------------------------------------------------------------------- 1 | # AUTOMATICALLY GENERATED 2 | # DO NOT EDIT THIS FILE DIRECTLY. Edit /Dockerfile.erb and run /update instead. 3 | 4 | FROM debian:bookworm-20251208 5 | 6 | RUN set -ex \ 7 | && saved_apt_mark="$(apt-mark showmanual)" \ 8 | && apt-get update \ 9 | && apt-get install -y --no-install-recommends \ 10 | ca-certificates \ 11 | curl \ 12 | gcc \ 13 | libc6-dev \ 14 | make \ 15 | && curl -fsSL -o /tmp/lua.tar.gz "https://github.com/LuaJIT/LuaJIT/archive/7152e15489d2077cd299ee23e3d51a4c599ab14f.tar.gz" \ 16 | && cd /tmp \ 17 | && mkdir /tmp/lua \ 18 | && tar -xf /tmp/lua.tar.gz -C /tmp/lua --strip-components=1 \ 19 | && cd /tmp/lua \ 20 | && make \ 21 | && make install \ 22 | && cd / \ 23 | && apt-mark auto '.*' > /dev/null \ 24 | && if [ -n "$saved_apt_mark" ]; then \ 25 | apt-mark manual $saved_apt_mark; \ 26 | fi \ 27 | && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \ 28 | && rm -rf /var/lib/apt/lists/* /var/lib/dpkg/*-old /var/cache/* /var/log/* \ 29 | && rm -rf /tmp/lua /tmp/lua.tar.gz \ 30 | && luajit -v 31 | 32 | CMD ["luajit"] 33 | 34 | LABEL org.opencontainers.image.source="https://github.com/GUI/lua-docker" \ 35 | org.opencontainers.image.licenses="MIT" 36 | -------------------------------------------------------------------------------- /luajit-2.1/rolling/Dockerfile: -------------------------------------------------------------------------------- 1 | # AUTOMATICALLY GENERATED 2 | # DO NOT EDIT THIS FILE DIRECTLY. Edit /Dockerfile.erb and run /update instead. 3 | 4 | FROM ubuntu:questing-20251029 5 | 6 | RUN set -ex \ 7 | && saved_apt_mark="$(apt-mark showmanual)" \ 8 | && apt-get update \ 9 | && apt-get install -y --no-install-recommends \ 10 | ca-certificates \ 11 | curl \ 12 | gcc \ 13 | libc6-dev \ 14 | make \ 15 | && curl -fsSL -o /tmp/lua.tar.gz "https://github.com/LuaJIT/LuaJIT/archive/7152e15489d2077cd299ee23e3d51a4c599ab14f.tar.gz" \ 16 | && cd /tmp \ 17 | && mkdir /tmp/lua \ 18 | && tar -xf /tmp/lua.tar.gz -C /tmp/lua --strip-components=1 \ 19 | && cd /tmp/lua \ 20 | && make \ 21 | && make install \ 22 | && cd / \ 23 | && apt-mark auto '.*' > /dev/null \ 24 | && if [ -n "$saved_apt_mark" ]; then \ 25 | apt-mark manual $saved_apt_mark; \ 26 | fi \ 27 | && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \ 28 | && rm -rf /var/lib/apt/lists/* /var/lib/dpkg/*-old /var/cache/* /var/log/* \ 29 | && rm -rf /tmp/lua /tmp/lua.tar.gz \ 30 | && luajit -v 31 | 32 | CMD ["luajit"] 33 | 34 | LABEL org.opencontainers.image.source="https://github.com/GUI/lua-docker" \ 35 | org.opencontainers.image.licenses="MIT" 36 | -------------------------------------------------------------------------------- /luajit-2.1/lua52compat-plucky/Dockerfile: -------------------------------------------------------------------------------- 1 | # AUTOMATICALLY GENERATED 2 | # DO NOT EDIT THIS FILE DIRECTLY. Edit /Dockerfile.erb and run /update instead. 3 | 4 | FROM ubuntu:plucky-20251001 5 | 6 | RUN set -ex \ 7 | && saved_apt_mark="$(apt-mark showmanual)" \ 8 | && apt-get update \ 9 | && apt-get install -y --no-install-recommends \ 10 | ca-certificates \ 11 | curl \ 12 | gcc \ 13 | libc6-dev \ 14 | make \ 15 | && curl -fsSL -o /tmp/lua.tar.gz "https://github.com/LuaJIT/LuaJIT/archive/7152e15489d2077cd299ee23e3d51a4c599ab14f.tar.gz" \ 16 | && cd /tmp \ 17 | && mkdir /tmp/lua \ 18 | && tar -xf /tmp/lua.tar.gz -C /tmp/lua --strip-components=1 \ 19 | && cd /tmp/lua \ 20 | && make CFLAGS="-DLUAJIT_ENABLE_LUA52COMPAT" \ 21 | && make install \ 22 | && cd / \ 23 | && apt-mark auto '.*' > /dev/null \ 24 | && if [ -n "$saved_apt_mark" ]; then \ 25 | apt-mark manual $saved_apt_mark; \ 26 | fi \ 27 | && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \ 28 | && rm -rf /var/lib/apt/lists/* /var/lib/dpkg/*-old /var/cache/* /var/log/* \ 29 | && rm -rf /tmp/lua /tmp/lua.tar.gz \ 30 | && luajit -v 31 | 32 | CMD ["luajit"] 33 | 34 | LABEL org.opencontainers.image.source="https://github.com/GUI/lua-docker" \ 35 | org.opencontainers.image.licenses="MIT" 36 | -------------------------------------------------------------------------------- /luajit-2.1/lua52compat-trixie/Dockerfile: -------------------------------------------------------------------------------- 1 | # AUTOMATICALLY GENERATED 2 | # DO NOT EDIT THIS FILE DIRECTLY. Edit /Dockerfile.erb and run /update instead. 3 | 4 | FROM debian:trixie-20251208 5 | 6 | RUN set -ex \ 7 | && saved_apt_mark="$(apt-mark showmanual)" \ 8 | && apt-get update \ 9 | && apt-get install -y --no-install-recommends \ 10 | ca-certificates \ 11 | curl \ 12 | gcc \ 13 | libc6-dev \ 14 | make \ 15 | && curl -fsSL -o /tmp/lua.tar.gz "https://github.com/LuaJIT/LuaJIT/archive/7152e15489d2077cd299ee23e3d51a4c599ab14f.tar.gz" \ 16 | && cd /tmp \ 17 | && mkdir /tmp/lua \ 18 | && tar -xf /tmp/lua.tar.gz -C /tmp/lua --strip-components=1 \ 19 | && cd /tmp/lua \ 20 | && make CFLAGS="-DLUAJIT_ENABLE_LUA52COMPAT" \ 21 | && make install \ 22 | && cd / \ 23 | && apt-mark auto '.*' > /dev/null \ 24 | && if [ -n "$saved_apt_mark" ]; then \ 25 | apt-mark manual $saved_apt_mark; \ 26 | fi \ 27 | && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \ 28 | && rm -rf /var/lib/apt/lists/* /var/lib/dpkg/*-old /var/cache/* /var/log/* \ 29 | && rm -rf /tmp/lua /tmp/lua.tar.gz \ 30 | && luajit -v 31 | 32 | CMD ["luajit"] 33 | 34 | LABEL org.opencontainers.image.source="https://github.com/GUI/lua-docker" \ 35 | org.opencontainers.image.licenses="MIT" 36 | -------------------------------------------------------------------------------- /luajit-2.1/lua52compat-bookworm/Dockerfile: -------------------------------------------------------------------------------- 1 | # AUTOMATICALLY GENERATED 2 | # DO NOT EDIT THIS FILE DIRECTLY. Edit /Dockerfile.erb and run /update instead. 3 | 4 | FROM debian:bookworm-20251208 5 | 6 | RUN set -ex \ 7 | && saved_apt_mark="$(apt-mark showmanual)" \ 8 | && apt-get update \ 9 | && apt-get install -y --no-install-recommends \ 10 | ca-certificates \ 11 | curl \ 12 | gcc \ 13 | libc6-dev \ 14 | make \ 15 | && curl -fsSL -o /tmp/lua.tar.gz "https://github.com/LuaJIT/LuaJIT/archive/7152e15489d2077cd299ee23e3d51a4c599ab14f.tar.gz" \ 16 | && cd /tmp \ 17 | && mkdir /tmp/lua \ 18 | && tar -xf /tmp/lua.tar.gz -C /tmp/lua --strip-components=1 \ 19 | && cd /tmp/lua \ 20 | && make CFLAGS="-DLUAJIT_ENABLE_LUA52COMPAT" \ 21 | && make install \ 22 | && cd / \ 23 | && apt-mark auto '.*' > /dev/null \ 24 | && if [ -n "$saved_apt_mark" ]; then \ 25 | apt-mark manual $saved_apt_mark; \ 26 | fi \ 27 | && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \ 28 | && rm -rf /var/lib/apt/lists/* /var/lib/dpkg/*-old /var/cache/* /var/log/* \ 29 | && rm -rf /tmp/lua /tmp/lua.tar.gz \ 30 | && luajit -v 31 | 32 | CMD ["luajit"] 33 | 34 | LABEL org.opencontainers.image.source="https://github.com/GUI/lua-docker" \ 35 | org.opencontainers.image.licenses="MIT" 36 | -------------------------------------------------------------------------------- /luajit-2.1/lua52compat-rolling/Dockerfile: -------------------------------------------------------------------------------- 1 | # AUTOMATICALLY GENERATED 2 | # DO NOT EDIT THIS FILE DIRECTLY. Edit /Dockerfile.erb and run /update instead. 3 | 4 | FROM ubuntu:questing-20251029 5 | 6 | RUN set -ex \ 7 | && saved_apt_mark="$(apt-mark showmanual)" \ 8 | && apt-get update \ 9 | && apt-get install -y --no-install-recommends \ 10 | ca-certificates \ 11 | curl \ 12 | gcc \ 13 | libc6-dev \ 14 | make \ 15 | && curl -fsSL -o /tmp/lua.tar.gz "https://github.com/LuaJIT/LuaJIT/archive/7152e15489d2077cd299ee23e3d51a4c599ab14f.tar.gz" \ 16 | && cd /tmp \ 17 | && mkdir /tmp/lua \ 18 | && tar -xf /tmp/lua.tar.gz -C /tmp/lua --strip-components=1 \ 19 | && cd /tmp/lua \ 20 | && make CFLAGS="-DLUAJIT_ENABLE_LUA52COMPAT" \ 21 | && make install \ 22 | && cd / \ 23 | && apt-mark auto '.*' > /dev/null \ 24 | && if [ -n "$saved_apt_mark" ]; then \ 25 | apt-mark manual $saved_apt_mark; \ 26 | fi \ 27 | && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \ 28 | && rm -rf /var/lib/apt/lists/* /var/lib/dpkg/*-old /var/cache/* /var/log/* \ 29 | && rm -rf /tmp/lua /tmp/lua.tar.gz \ 30 | && luajit -v 31 | 32 | CMD ["luajit"] 33 | 34 | LABEL org.opencontainers.image.source="https://github.com/GUI/lua-docker" \ 35 | org.opencontainers.image.licenses="MIT" 36 | -------------------------------------------------------------------------------- /lua-5.2/plucky/Dockerfile: -------------------------------------------------------------------------------- 1 | # AUTOMATICALLY GENERATED 2 | # DO NOT EDIT THIS FILE DIRECTLY. Edit /Dockerfile.erb and run /update instead. 3 | 4 | FROM ubuntu:plucky-20251001 5 | 6 | RUN set -ex \ 7 | && saved_apt_mark="$(apt-mark showmanual)" \ 8 | && apt-get update \ 9 | && apt-get install -y --no-install-recommends \ 10 | ca-certificates \ 11 | curl \ 12 | gcc \ 13 | libc6-dev \ 14 | make \ 15 | libreadline-dev \ 16 | && curl -fsSL -o /tmp/lua.tar.gz "https://www.lua.org/ftp/lua-5.2.4.tar.gz" \ 17 | && cd /tmp \ 18 | && echo "b9e2e4aad6789b3b63a056d442f7b39f0ecfca3ae0f1fc0ae4e9614401b69f4b *lua.tar.gz" | sha256sum -c - \ 19 | && mkdir /tmp/lua \ 20 | && tar -xf /tmp/lua.tar.gz -C /tmp/lua --strip-components=1 \ 21 | && cd /tmp/lua \ 22 | && make linux \ 23 | && make install \ 24 | && cd / \ 25 | && apt-mark auto '.*' > /dev/null \ 26 | && if [ -n "$saved_apt_mark" ]; then \ 27 | apt-mark manual $saved_apt_mark; \ 28 | fi \ 29 | && dpkg-query --show --showformat '${package}\n' | grep -P '^libreadline[t\d]+$' | xargs apt-mark manual \ 30 | && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \ 31 | && rm -rf /var/lib/apt/lists/* /var/lib/dpkg/*-old /var/cache/* /var/log/* \ 32 | && rm -rf /tmp/lua /tmp/lua.tar.gz \ 33 | && lua -v 34 | 35 | CMD ["lua"] 36 | 37 | LABEL org.opencontainers.image.source="https://github.com/GUI/lua-docker" \ 38 | org.opencontainers.image.licenses="MIT" 39 | -------------------------------------------------------------------------------- /lua-5.2/trixie/Dockerfile: -------------------------------------------------------------------------------- 1 | # AUTOMATICALLY GENERATED 2 | # DO NOT EDIT THIS FILE DIRECTLY. Edit /Dockerfile.erb and run /update instead. 3 | 4 | FROM debian:trixie-20251208 5 | 6 | RUN set -ex \ 7 | && saved_apt_mark="$(apt-mark showmanual)" \ 8 | && apt-get update \ 9 | && apt-get install -y --no-install-recommends \ 10 | ca-certificates \ 11 | curl \ 12 | gcc \ 13 | libc6-dev \ 14 | make \ 15 | libreadline-dev \ 16 | && curl -fsSL -o /tmp/lua.tar.gz "https://www.lua.org/ftp/lua-5.2.4.tar.gz" \ 17 | && cd /tmp \ 18 | && echo "b9e2e4aad6789b3b63a056d442f7b39f0ecfca3ae0f1fc0ae4e9614401b69f4b *lua.tar.gz" | sha256sum -c - \ 19 | && mkdir /tmp/lua \ 20 | && tar -xf /tmp/lua.tar.gz -C /tmp/lua --strip-components=1 \ 21 | && cd /tmp/lua \ 22 | && make linux \ 23 | && make install \ 24 | && cd / \ 25 | && apt-mark auto '.*' > /dev/null \ 26 | && if [ -n "$saved_apt_mark" ]; then \ 27 | apt-mark manual $saved_apt_mark; \ 28 | fi \ 29 | && dpkg-query --show --showformat '${package}\n' | grep -P '^libreadline[t\d]+$' | xargs apt-mark manual \ 30 | && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \ 31 | && rm -rf /var/lib/apt/lists/* /var/lib/dpkg/*-old /var/cache/* /var/log/* \ 32 | && rm -rf /tmp/lua /tmp/lua.tar.gz \ 33 | && lua -v 34 | 35 | CMD ["lua"] 36 | 37 | LABEL org.opencontainers.image.source="https://github.com/GUI/lua-docker" \ 38 | org.opencontainers.image.licenses="MIT" 39 | -------------------------------------------------------------------------------- /lua-5.3/plucky/Dockerfile: -------------------------------------------------------------------------------- 1 | # AUTOMATICALLY GENERATED 2 | # DO NOT EDIT THIS FILE DIRECTLY. Edit /Dockerfile.erb and run /update instead. 3 | 4 | FROM ubuntu:plucky-20251001 5 | 6 | RUN set -ex \ 7 | && saved_apt_mark="$(apt-mark showmanual)" \ 8 | && apt-get update \ 9 | && apt-get install -y --no-install-recommends \ 10 | ca-certificates \ 11 | curl \ 12 | gcc \ 13 | libc6-dev \ 14 | make \ 15 | libreadline-dev \ 16 | && curl -fsSL -o /tmp/lua.tar.gz "https://www.lua.org/ftp/lua-5.3.6.tar.gz" \ 17 | && cd /tmp \ 18 | && echo "fc5fd69bb8736323f026672b1b7235da613d7177e72558893a0bdcd320466d60 *lua.tar.gz" | sha256sum -c - \ 19 | && mkdir /tmp/lua \ 20 | && tar -xf /tmp/lua.tar.gz -C /tmp/lua --strip-components=1 \ 21 | && cd /tmp/lua \ 22 | && make linux \ 23 | && make install \ 24 | && cd / \ 25 | && apt-mark auto '.*' > /dev/null \ 26 | && if [ -n "$saved_apt_mark" ]; then \ 27 | apt-mark manual $saved_apt_mark; \ 28 | fi \ 29 | && dpkg-query --show --showformat '${package}\n' | grep -P '^libreadline[t\d]+$' | xargs apt-mark manual \ 30 | && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \ 31 | && rm -rf /var/lib/apt/lists/* /var/lib/dpkg/*-old /var/cache/* /var/log/* \ 32 | && rm -rf /tmp/lua /tmp/lua.tar.gz \ 33 | && lua -v 34 | 35 | CMD ["lua"] 36 | 37 | LABEL org.opencontainers.image.source="https://github.com/GUI/lua-docker" \ 38 | org.opencontainers.image.licenses="MIT" 39 | -------------------------------------------------------------------------------- /lua-5.3/trixie/Dockerfile: -------------------------------------------------------------------------------- 1 | # AUTOMATICALLY GENERATED 2 | # DO NOT EDIT THIS FILE DIRECTLY. Edit /Dockerfile.erb and run /update instead. 3 | 4 | FROM debian:trixie-20251208 5 | 6 | RUN set -ex \ 7 | && saved_apt_mark="$(apt-mark showmanual)" \ 8 | && apt-get update \ 9 | && apt-get install -y --no-install-recommends \ 10 | ca-certificates \ 11 | curl \ 12 | gcc \ 13 | libc6-dev \ 14 | make \ 15 | libreadline-dev \ 16 | && curl -fsSL -o /tmp/lua.tar.gz "https://www.lua.org/ftp/lua-5.3.6.tar.gz" \ 17 | && cd /tmp \ 18 | && echo "fc5fd69bb8736323f026672b1b7235da613d7177e72558893a0bdcd320466d60 *lua.tar.gz" | sha256sum -c - \ 19 | && mkdir /tmp/lua \ 20 | && tar -xf /tmp/lua.tar.gz -C /tmp/lua --strip-components=1 \ 21 | && cd /tmp/lua \ 22 | && make linux \ 23 | && make install \ 24 | && cd / \ 25 | && apt-mark auto '.*' > /dev/null \ 26 | && if [ -n "$saved_apt_mark" ]; then \ 27 | apt-mark manual $saved_apt_mark; \ 28 | fi \ 29 | && dpkg-query --show --showformat '${package}\n' | grep -P '^libreadline[t\d]+$' | xargs apt-mark manual \ 30 | && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \ 31 | && rm -rf /var/lib/apt/lists/* /var/lib/dpkg/*-old /var/cache/* /var/log/* \ 32 | && rm -rf /tmp/lua /tmp/lua.tar.gz \ 33 | && lua -v 34 | 35 | CMD ["lua"] 36 | 37 | LABEL org.opencontainers.image.source="https://github.com/GUI/lua-docker" \ 38 | org.opencontainers.image.licenses="MIT" 39 | -------------------------------------------------------------------------------- /lua-5.4/plucky/Dockerfile: -------------------------------------------------------------------------------- 1 | # AUTOMATICALLY GENERATED 2 | # DO NOT EDIT THIS FILE DIRECTLY. Edit /Dockerfile.erb and run /update instead. 3 | 4 | FROM ubuntu:plucky-20251001 5 | 6 | RUN set -ex \ 7 | && saved_apt_mark="$(apt-mark showmanual)" \ 8 | && apt-get update \ 9 | && apt-get install -y --no-install-recommends \ 10 | ca-certificates \ 11 | curl \ 12 | gcc \ 13 | libc6-dev \ 14 | make \ 15 | libreadline-dev \ 16 | && curl -fsSL -o /tmp/lua.tar.gz "https://www.lua.org/ftp/lua-5.4.8.tar.gz" \ 17 | && cd /tmp \ 18 | && echo "4f18ddae154e793e46eeab727c59ef1c0c0c2b744e7b94219710d76f530629ae *lua.tar.gz" | sha256sum -c - \ 19 | && mkdir /tmp/lua \ 20 | && tar -xf /tmp/lua.tar.gz -C /tmp/lua --strip-components=1 \ 21 | && cd /tmp/lua \ 22 | && make linux \ 23 | && make install \ 24 | && cd / \ 25 | && apt-mark auto '.*' > /dev/null \ 26 | && if [ -n "$saved_apt_mark" ]; then \ 27 | apt-mark manual $saved_apt_mark; \ 28 | fi \ 29 | && dpkg-query --show --showformat '${package}\n' | grep -P '^libreadline[t\d]+$' | xargs apt-mark manual \ 30 | && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \ 31 | && rm -rf /var/lib/apt/lists/* /var/lib/dpkg/*-old /var/cache/* /var/log/* \ 32 | && rm -rf /tmp/lua /tmp/lua.tar.gz \ 33 | && lua -v 34 | 35 | CMD ["lua"] 36 | 37 | LABEL org.opencontainers.image.source="https://github.com/GUI/lua-docker" \ 38 | org.opencontainers.image.licenses="MIT" 39 | -------------------------------------------------------------------------------- /lua-5.4/trixie/Dockerfile: -------------------------------------------------------------------------------- 1 | # AUTOMATICALLY GENERATED 2 | # DO NOT EDIT THIS FILE DIRECTLY. Edit /Dockerfile.erb and run /update instead. 3 | 4 | FROM debian:trixie-20251208 5 | 6 | RUN set -ex \ 7 | && saved_apt_mark="$(apt-mark showmanual)" \ 8 | && apt-get update \ 9 | && apt-get install -y --no-install-recommends \ 10 | ca-certificates \ 11 | curl \ 12 | gcc \ 13 | libc6-dev \ 14 | make \ 15 | libreadline-dev \ 16 | && curl -fsSL -o /tmp/lua.tar.gz "https://www.lua.org/ftp/lua-5.4.8.tar.gz" \ 17 | && cd /tmp \ 18 | && echo "4f18ddae154e793e46eeab727c59ef1c0c0c2b744e7b94219710d76f530629ae *lua.tar.gz" | sha256sum -c - \ 19 | && mkdir /tmp/lua \ 20 | && tar -xf /tmp/lua.tar.gz -C /tmp/lua --strip-components=1 \ 21 | && cd /tmp/lua \ 22 | && make linux \ 23 | && make install \ 24 | && cd / \ 25 | && apt-mark auto '.*' > /dev/null \ 26 | && if [ -n "$saved_apt_mark" ]; then \ 27 | apt-mark manual $saved_apt_mark; \ 28 | fi \ 29 | && dpkg-query --show --showformat '${package}\n' | grep -P '^libreadline[t\d]+$' | xargs apt-mark manual \ 30 | && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \ 31 | && rm -rf /var/lib/apt/lists/* /var/lib/dpkg/*-old /var/cache/* /var/log/* \ 32 | && rm -rf /tmp/lua /tmp/lua.tar.gz \ 33 | && lua -v 34 | 35 | CMD ["lua"] 36 | 37 | LABEL org.opencontainers.image.source="https://github.com/GUI/lua-docker" \ 38 | org.opencontainers.image.licenses="MIT" 39 | -------------------------------------------------------------------------------- /lua-5.2/bookworm/Dockerfile: -------------------------------------------------------------------------------- 1 | # AUTOMATICALLY GENERATED 2 | # DO NOT EDIT THIS FILE DIRECTLY. Edit /Dockerfile.erb and run /update instead. 3 | 4 | FROM debian:bookworm-20251208 5 | 6 | RUN set -ex \ 7 | && saved_apt_mark="$(apt-mark showmanual)" \ 8 | && apt-get update \ 9 | && apt-get install -y --no-install-recommends \ 10 | ca-certificates \ 11 | curl \ 12 | gcc \ 13 | libc6-dev \ 14 | make \ 15 | libreadline-dev \ 16 | && curl -fsSL -o /tmp/lua.tar.gz "https://www.lua.org/ftp/lua-5.2.4.tar.gz" \ 17 | && cd /tmp \ 18 | && echo "b9e2e4aad6789b3b63a056d442f7b39f0ecfca3ae0f1fc0ae4e9614401b69f4b *lua.tar.gz" | sha256sum -c - \ 19 | && mkdir /tmp/lua \ 20 | && tar -xf /tmp/lua.tar.gz -C /tmp/lua --strip-components=1 \ 21 | && cd /tmp/lua \ 22 | && make linux \ 23 | && make install \ 24 | && cd / \ 25 | && apt-mark auto '.*' > /dev/null \ 26 | && if [ -n "$saved_apt_mark" ]; then \ 27 | apt-mark manual $saved_apt_mark; \ 28 | fi \ 29 | && dpkg-query --show --showformat '${package}\n' | grep -P '^libreadline[t\d]+$' | xargs apt-mark manual \ 30 | && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \ 31 | && rm -rf /var/lib/apt/lists/* /var/lib/dpkg/*-old /var/cache/* /var/log/* \ 32 | && rm -rf /tmp/lua /tmp/lua.tar.gz \ 33 | && lua -v 34 | 35 | CMD ["lua"] 36 | 37 | LABEL org.opencontainers.image.source="https://github.com/GUI/lua-docker" \ 38 | org.opencontainers.image.licenses="MIT" 39 | -------------------------------------------------------------------------------- /lua-5.2/rolling/Dockerfile: -------------------------------------------------------------------------------- 1 | # AUTOMATICALLY GENERATED 2 | # DO NOT EDIT THIS FILE DIRECTLY. Edit /Dockerfile.erb and run /update instead. 3 | 4 | FROM ubuntu:questing-20251029 5 | 6 | RUN set -ex \ 7 | && saved_apt_mark="$(apt-mark showmanual)" \ 8 | && apt-get update \ 9 | && apt-get install -y --no-install-recommends \ 10 | ca-certificates \ 11 | curl \ 12 | gcc \ 13 | libc6-dev \ 14 | make \ 15 | libreadline-dev \ 16 | && curl -fsSL -o /tmp/lua.tar.gz "https://www.lua.org/ftp/lua-5.2.4.tar.gz" \ 17 | && cd /tmp \ 18 | && echo "b9e2e4aad6789b3b63a056d442f7b39f0ecfca3ae0f1fc0ae4e9614401b69f4b *lua.tar.gz" | sha256sum -c - \ 19 | && mkdir /tmp/lua \ 20 | && tar -xf /tmp/lua.tar.gz -C /tmp/lua --strip-components=1 \ 21 | && cd /tmp/lua \ 22 | && make linux \ 23 | && make install \ 24 | && cd / \ 25 | && apt-mark auto '.*' > /dev/null \ 26 | && if [ -n "$saved_apt_mark" ]; then \ 27 | apt-mark manual $saved_apt_mark; \ 28 | fi \ 29 | && dpkg-query --show --showformat '${package}\n' | grep -P '^libreadline[t\d]+$' | xargs apt-mark manual \ 30 | && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \ 31 | && rm -rf /var/lib/apt/lists/* /var/lib/dpkg/*-old /var/cache/* /var/log/* \ 32 | && rm -rf /tmp/lua /tmp/lua.tar.gz \ 33 | && lua -v 34 | 35 | CMD ["lua"] 36 | 37 | LABEL org.opencontainers.image.source="https://github.com/GUI/lua-docker" \ 38 | org.opencontainers.image.licenses="MIT" 39 | -------------------------------------------------------------------------------- /lua-5.3/bookworm/Dockerfile: -------------------------------------------------------------------------------- 1 | # AUTOMATICALLY GENERATED 2 | # DO NOT EDIT THIS FILE DIRECTLY. Edit /Dockerfile.erb and run /update instead. 3 | 4 | FROM debian:bookworm-20251208 5 | 6 | RUN set -ex \ 7 | && saved_apt_mark="$(apt-mark showmanual)" \ 8 | && apt-get update \ 9 | && apt-get install -y --no-install-recommends \ 10 | ca-certificates \ 11 | curl \ 12 | gcc \ 13 | libc6-dev \ 14 | make \ 15 | libreadline-dev \ 16 | && curl -fsSL -o /tmp/lua.tar.gz "https://www.lua.org/ftp/lua-5.3.6.tar.gz" \ 17 | && cd /tmp \ 18 | && echo "fc5fd69bb8736323f026672b1b7235da613d7177e72558893a0bdcd320466d60 *lua.tar.gz" | sha256sum -c - \ 19 | && mkdir /tmp/lua \ 20 | && tar -xf /tmp/lua.tar.gz -C /tmp/lua --strip-components=1 \ 21 | && cd /tmp/lua \ 22 | && make linux \ 23 | && make install \ 24 | && cd / \ 25 | && apt-mark auto '.*' > /dev/null \ 26 | && if [ -n "$saved_apt_mark" ]; then \ 27 | apt-mark manual $saved_apt_mark; \ 28 | fi \ 29 | && dpkg-query --show --showformat '${package}\n' | grep -P '^libreadline[t\d]+$' | xargs apt-mark manual \ 30 | && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \ 31 | && rm -rf /var/lib/apt/lists/* /var/lib/dpkg/*-old /var/cache/* /var/log/* \ 32 | && rm -rf /tmp/lua /tmp/lua.tar.gz \ 33 | && lua -v 34 | 35 | CMD ["lua"] 36 | 37 | LABEL org.opencontainers.image.source="https://github.com/GUI/lua-docker" \ 38 | org.opencontainers.image.licenses="MIT" 39 | -------------------------------------------------------------------------------- /lua-5.3/rolling/Dockerfile: -------------------------------------------------------------------------------- 1 | # AUTOMATICALLY GENERATED 2 | # DO NOT EDIT THIS FILE DIRECTLY. Edit /Dockerfile.erb and run /update instead. 3 | 4 | FROM ubuntu:questing-20251029 5 | 6 | RUN set -ex \ 7 | && saved_apt_mark="$(apt-mark showmanual)" \ 8 | && apt-get update \ 9 | && apt-get install -y --no-install-recommends \ 10 | ca-certificates \ 11 | curl \ 12 | gcc \ 13 | libc6-dev \ 14 | make \ 15 | libreadline-dev \ 16 | && curl -fsSL -o /tmp/lua.tar.gz "https://www.lua.org/ftp/lua-5.3.6.tar.gz" \ 17 | && cd /tmp \ 18 | && echo "fc5fd69bb8736323f026672b1b7235da613d7177e72558893a0bdcd320466d60 *lua.tar.gz" | sha256sum -c - \ 19 | && mkdir /tmp/lua \ 20 | && tar -xf /tmp/lua.tar.gz -C /tmp/lua --strip-components=1 \ 21 | && cd /tmp/lua \ 22 | && make linux \ 23 | && make install \ 24 | && cd / \ 25 | && apt-mark auto '.*' > /dev/null \ 26 | && if [ -n "$saved_apt_mark" ]; then \ 27 | apt-mark manual $saved_apt_mark; \ 28 | fi \ 29 | && dpkg-query --show --showformat '${package}\n' | grep -P '^libreadline[t\d]+$' | xargs apt-mark manual \ 30 | && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \ 31 | && rm -rf /var/lib/apt/lists/* /var/lib/dpkg/*-old /var/cache/* /var/log/* \ 32 | && rm -rf /tmp/lua /tmp/lua.tar.gz \ 33 | && lua -v 34 | 35 | CMD ["lua"] 36 | 37 | LABEL org.opencontainers.image.source="https://github.com/GUI/lua-docker" \ 38 | org.opencontainers.image.licenses="MIT" 39 | -------------------------------------------------------------------------------- /lua-5.4/bookworm/Dockerfile: -------------------------------------------------------------------------------- 1 | # AUTOMATICALLY GENERATED 2 | # DO NOT EDIT THIS FILE DIRECTLY. Edit /Dockerfile.erb and run /update instead. 3 | 4 | FROM debian:bookworm-20251208 5 | 6 | RUN set -ex \ 7 | && saved_apt_mark="$(apt-mark showmanual)" \ 8 | && apt-get update \ 9 | && apt-get install -y --no-install-recommends \ 10 | ca-certificates \ 11 | curl \ 12 | gcc \ 13 | libc6-dev \ 14 | make \ 15 | libreadline-dev \ 16 | && curl -fsSL -o /tmp/lua.tar.gz "https://www.lua.org/ftp/lua-5.4.8.tar.gz" \ 17 | && cd /tmp \ 18 | && echo "4f18ddae154e793e46eeab727c59ef1c0c0c2b744e7b94219710d76f530629ae *lua.tar.gz" | sha256sum -c - \ 19 | && mkdir /tmp/lua \ 20 | && tar -xf /tmp/lua.tar.gz -C /tmp/lua --strip-components=1 \ 21 | && cd /tmp/lua \ 22 | && make linux \ 23 | && make install \ 24 | && cd / \ 25 | && apt-mark auto '.*' > /dev/null \ 26 | && if [ -n "$saved_apt_mark" ]; then \ 27 | apt-mark manual $saved_apt_mark; \ 28 | fi \ 29 | && dpkg-query --show --showformat '${package}\n' | grep -P '^libreadline[t\d]+$' | xargs apt-mark manual \ 30 | && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \ 31 | && rm -rf /var/lib/apt/lists/* /var/lib/dpkg/*-old /var/cache/* /var/log/* \ 32 | && rm -rf /tmp/lua /tmp/lua.tar.gz \ 33 | && lua -v 34 | 35 | CMD ["lua"] 36 | 37 | LABEL org.opencontainers.image.source="https://github.com/GUI/lua-docker" \ 38 | org.opencontainers.image.licenses="MIT" 39 | -------------------------------------------------------------------------------- /lua-5.4/rolling/Dockerfile: -------------------------------------------------------------------------------- 1 | # AUTOMATICALLY GENERATED 2 | # DO NOT EDIT THIS FILE DIRECTLY. Edit /Dockerfile.erb and run /update instead. 3 | 4 | FROM ubuntu:questing-20251029 5 | 6 | RUN set -ex \ 7 | && saved_apt_mark="$(apt-mark showmanual)" \ 8 | && apt-get update \ 9 | && apt-get install -y --no-install-recommends \ 10 | ca-certificates \ 11 | curl \ 12 | gcc \ 13 | libc6-dev \ 14 | make \ 15 | libreadline-dev \ 16 | && curl -fsSL -o /tmp/lua.tar.gz "https://www.lua.org/ftp/lua-5.4.8.tar.gz" \ 17 | && cd /tmp \ 18 | && echo "4f18ddae154e793e46eeab727c59ef1c0c0c2b744e7b94219710d76f530629ae *lua.tar.gz" | sha256sum -c - \ 19 | && mkdir /tmp/lua \ 20 | && tar -xf /tmp/lua.tar.gz -C /tmp/lua --strip-components=1 \ 21 | && cd /tmp/lua \ 22 | && make linux \ 23 | && make install \ 24 | && cd / \ 25 | && apt-mark auto '.*' > /dev/null \ 26 | && if [ -n "$saved_apt_mark" ]; then \ 27 | apt-mark manual $saved_apt_mark; \ 28 | fi \ 29 | && dpkg-query --show --showformat '${package}\n' | grep -P '^libreadline[t\d]+$' | xargs apt-mark manual \ 30 | && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \ 31 | && rm -rf /var/lib/apt/lists/* /var/lib/dpkg/*-old /var/cache/* /var/log/* \ 32 | && rm -rf /tmp/lua /tmp/lua.tar.gz \ 33 | && lua -v 34 | 35 | CMD ["lua"] 36 | 37 | LABEL org.opencontainers.image.source="https://github.com/GUI/lua-docker" \ 38 | org.opencontainers.image.licenses="MIT" 39 | -------------------------------------------------------------------------------- /test.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | set -eux 4 | exitcode=0 5 | 6 | case "$LANG" in 7 | lua) 8 | lua_version=$(lua -v 2>&1) 9 | case "$lua_version" in 10 | "Lua "*" Copyright"*) 11 | ;; 12 | *) 13 | echo "lua command not working as expected" 14 | exitcode="1" 15 | ;; 16 | esac 17 | ;; 18 | luajit) 19 | luajit_version=$(luajit -v) 20 | case "$luajit_version" in 21 | "LuaJIT "*" Copyright"*) 22 | ;; 23 | *) 24 | echo "luajit command not working as expected" 25 | exitcode="1" 26 | ;; 27 | esac 28 | ;; 29 | *) 30 | echo "Unexpected LANG value" 31 | exitcode="1" 32 | ;; 33 | esac 34 | 35 | case "$LUAROCKS" in 36 | true) 37 | luarocks_version=$(luarocks --version) 38 | case "$luarocks_version" in 39 | *"luarocks "[0-9]*) 40 | ;; 41 | *) 42 | echo "luarocks command not working as expected" 43 | exitcode="1" 44 | ;; 45 | esac 46 | 47 | luarocks_search=$(luarocks search --porcelain penlight 1.13.0-1) 48 | case "$luarocks_search" in 49 | "penlight"*) 50 | ;; 51 | *) 52 | echo "luarocks search command not working as expected" 53 | exitcode="1" 54 | ;; 55 | esac 56 | ;; 57 | false) 58 | if command -v luarocks; then 59 | echo "luarocks is present, but unexpected" 60 | exitcode="1" 61 | fi 62 | ;; 63 | *) 64 | echo "Unexpected LUAROCKS value" 65 | exitcode="1" 66 | ;; 67 | esac 68 | 69 | if [ "$exitcode" = "0" ]; then 70 | echo "Lua Tests: OK" 71 | else 72 | echo "Lua Tests: Error" 73 | exit "$exitcode" 74 | fi 75 | -------------------------------------------------------------------------------- /README.lua.md.erb: -------------------------------------------------------------------------------- 1 | # lua-docker 2 | 3 | Minimal, automated, and up-to-date Docker images for different Lua versions. 4 | 5 | Provides variants for: 6 | 7 | - Debian, Alpine, Ubuntu, and CentOS base images 8 | - With LuaRocks 9 | 10 | New versions of Lua and LuaRocks should automatically be detected and trigger new docker images to built, tagged, and pushed by a daily [GitHub Actions workflow](https://github.com/GUI/lua-docker/blob/main/.github/workflows/main.yml). 11 | 12 | ## Supported Tags and Respective Dockerfile Links 13 | 14 | <% tags.fetch("lua").each do |data| -%> 15 | - <%= data.fetch(:variant_tags).map { |t| "`#{t}`" }.join(", ") %>: [<%= data.fetch(:filename) %>](https://github.com/GUI/lua-docker/blob/main/<%= data.fetch(:filename) %>) 16 | <% end -%> 17 | 18 | ## Image Variants 19 | 20 | ### `nickblah/lua:` 21 | The default Lua image. Provides Lua. Uses Debian Linux for base image. 22 | 23 | ### `nickblah/lua:-alpine` 24 | Provides Lua. Uses Alpine Linux for base image. 25 | 26 | ### `nickblah/lua:-luarocks` 27 | Provides Lua and LuaRocks. Uses Debian Linux for base image. 28 | 29 | ### `nickblah/lua:-luarocks-alpine` 30 | Provides Lua and LuaRocks. Uses Alpine Linux for base image. 31 | 32 | ## Installing C Libraries 33 | 34 | These base images are minimal, so they only contain the necessary dependencies for running Lua and installing pure-Lua LuaRocks modules. If you need to install LuaRocks modules that include C extensions or need compiling/building, then you'll first need to install the necessary dependencies (for example, make, gcc, etc). The exact dependencies may vary depending on the module's requirements, but to install basic build dependencies, the following installation commands can be used: 35 | 36 | - For Debian based images: 37 | ```sh 38 | apt-get update && apt-get install -y build-essential 39 | ``` 40 | - For Alpine based images: 41 | ```sh 42 | apk add --no-cache build-base 43 | ``` 44 | -------------------------------------------------------------------------------- /.github/workflows/main.yml: -------------------------------------------------------------------------------- 1 | name: CI 2 | 3 | on: 4 | push: 5 | branches: 6 | - main 7 | schedule: 8 | - cron: "39 3 * * *" 9 | workflow_dispatch: 10 | 11 | jobs: 12 | build: 13 | runs-on: ubuntu-latest 14 | strategy: 15 | fail-fast: false 16 | 17 | services: 18 | registry: 19 | image: registry:2 20 | ports: 21 | - 5000:5000 22 | 23 | steps: 24 | - uses: actions/checkout@v3 25 | 26 | - uses: ruby/setup-ruby@v1 27 | with: 28 | ruby-version: 3.1 29 | 30 | - name: Update Dockerfiles 31 | env: 32 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 33 | run: ./update-ci 34 | 35 | - name: Set up QEMU 36 | uses: docker/setup-qemu-action@v2 37 | with: 38 | platforms: amd64,arm64 39 | 40 | - name: Set up Docker Buildx 41 | uses: docker/setup-buildx-action@v2 42 | with: 43 | driver-opts: network=host 44 | 45 | - name: Log in to the GitHub container registry 46 | uses: docker/login-action@v2 47 | with: 48 | registry: ghcr.io 49 | username: ${{ github.actor }} 50 | password: ${{ secrets.GITHUB_TOKEN }} 51 | 52 | - name: Log in to the Docker Hub container registry 53 | uses: docker/login-action@v2 54 | with: 55 | username: ${{ secrets.DOCKER_USERNAME }} 56 | password: ${{ secrets.DOCKER_PASSWORD }} 57 | 58 | - name: Docker Build 59 | run: ./docker-build 60 | 61 | - name: Test 62 | run: ./test 63 | 64 | - name: Docker Push 65 | run: ./docker-push 66 | 67 | - name: Docker Hub Description 68 | uses: peter-evans/dockerhub-description@v3 69 | with: 70 | username: ${{ secrets.DOCKER_USERNAME }} 71 | password: ${{ secrets.DOCKER_PASSWORD }} 72 | repository: nickblah/lua 73 | readme-filepath: ./README.lua.md 74 | 75 | - name: Docker Hub Description 76 | uses: peter-evans/dockerhub-description@v3 77 | with: 78 | username: ${{ secrets.DOCKER_USERNAME }} 79 | password: ${{ secrets.DOCKER_PASSWORD }} 80 | repository: nickblah/luajit 81 | readme-filepath: ./README.luajit.md 82 | -------------------------------------------------------------------------------- /luajit-2.1/luarocks-alpine3.22/Dockerfile: -------------------------------------------------------------------------------- 1 | # AUTOMATICALLY GENERATED 2 | # DO NOT EDIT THIS FILE DIRECTLY. Edit /Dockerfile.erb and run /update instead. 3 | 4 | FROM alpine:3.22.2 5 | 6 | RUN set -ex \ 7 | && apk add --no-cache --virtual .lua-builddeps \ 8 | ca-certificates \ 9 | curl \ 10 | gcc \ 11 | libc-dev \ 12 | make \ 13 | coreutils \ 14 | gnupg \ 15 | unzip \ 16 | # rundeps 17 | wget \ 18 | && curl -fsSL -o /tmp/lua.tar.gz "https://github.com/LuaJIT/LuaJIT/archive/7152e15489d2077cd299ee23e3d51a4c599ab14f.tar.gz" \ 19 | && cd /tmp \ 20 | && mkdir /tmp/lua \ 21 | && tar -xf /tmp/lua.tar.gz -C /tmp/lua --strip-components=1 \ 22 | && cd /tmp/lua \ 23 | && make \ 24 | && make install \ 25 | && curl -fsSL -o /tmp/luarocks.tar.gz "https://luarocks.org/releases/luarocks-3.12.2.tar.gz" \ 26 | && curl -fsSL -o /tmp/luarocks.tar.gz.asc "https://luarocks.org/releases/luarocks-3.12.2.tar.gz.asc" \ 27 | && cd /tmp \ 28 | && export GNUPGHOME="$(mktemp -d)" \ 29 | && export GPG_KEYS="8460980B2B79786DE0C7FCC83FD8F43C2BB3C478" \ 30 | && (gpg --batch --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-keys "$GPG_KEYS" || gpg --batch --keyserver hkp://ipv4.pool.sks-keyservers.net:80 --recv-keys "$GPG_KEYS" || gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$GPG_KEYS" || gpg --batch --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys "$GPG_KEYS") \ 31 | && gpg --batch --verify luarocks.tar.gz.asc luarocks.tar.gz \ 32 | && rm -rf "$GNUPGHOME" \ 33 | && mkdir /tmp/luarocks \ 34 | && tar -xf /tmp/luarocks.tar.gz -C /tmp/luarocks --strip-components=1 \ 35 | && cd /tmp/luarocks \ 36 | && ./configure \ 37 | && make \ 38 | && make install \ 39 | && cd / \ 40 | && apk add --no-network --no-cache --virtual .lua-rundeps \ 41 | libgcc \ 42 | ca-certificates \ 43 | coreutils \ 44 | wget \ 45 | unzip \ 46 | && apk del --no-network .lua-builddeps \ 47 | && rm -rf /tmp/lua /tmp/lua.tar.gz \ 48 | && rm -rf /tmp/luarocks /tmp/luarocks.tar.gz \ 49 | && luarocks --version \ 50 | && luajit -v 51 | 52 | CMD ["luajit"] 53 | 54 | LABEL org.opencontainers.image.source="https://github.com/GUI/lua-docker" \ 55 | org.opencontainers.image.licenses="MIT" 56 | -------------------------------------------------------------------------------- /luajit-2.1/luarocks-alpine3.23/Dockerfile: -------------------------------------------------------------------------------- 1 | # AUTOMATICALLY GENERATED 2 | # DO NOT EDIT THIS FILE DIRECTLY. Edit /Dockerfile.erb and run /update instead. 3 | 4 | FROM alpine:3.23.0 5 | 6 | RUN set -ex \ 7 | && apk add --no-cache --virtual .lua-builddeps \ 8 | ca-certificates \ 9 | curl \ 10 | gcc \ 11 | libc-dev \ 12 | make \ 13 | coreutils \ 14 | gnupg \ 15 | unzip \ 16 | # rundeps 17 | wget \ 18 | && curl -fsSL -o /tmp/lua.tar.gz "https://github.com/LuaJIT/LuaJIT/archive/7152e15489d2077cd299ee23e3d51a4c599ab14f.tar.gz" \ 19 | && cd /tmp \ 20 | && mkdir /tmp/lua \ 21 | && tar -xf /tmp/lua.tar.gz -C /tmp/lua --strip-components=1 \ 22 | && cd /tmp/lua \ 23 | && make \ 24 | && make install \ 25 | && curl -fsSL -o /tmp/luarocks.tar.gz "https://luarocks.org/releases/luarocks-3.12.2.tar.gz" \ 26 | && curl -fsSL -o /tmp/luarocks.tar.gz.asc "https://luarocks.org/releases/luarocks-3.12.2.tar.gz.asc" \ 27 | && cd /tmp \ 28 | && export GNUPGHOME="$(mktemp -d)" \ 29 | && export GPG_KEYS="8460980B2B79786DE0C7FCC83FD8F43C2BB3C478" \ 30 | && (gpg --batch --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-keys "$GPG_KEYS" || gpg --batch --keyserver hkp://ipv4.pool.sks-keyservers.net:80 --recv-keys "$GPG_KEYS" || gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$GPG_KEYS" || gpg --batch --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys "$GPG_KEYS") \ 31 | && gpg --batch --verify luarocks.tar.gz.asc luarocks.tar.gz \ 32 | && rm -rf "$GNUPGHOME" \ 33 | && mkdir /tmp/luarocks \ 34 | && tar -xf /tmp/luarocks.tar.gz -C /tmp/luarocks --strip-components=1 \ 35 | && cd /tmp/luarocks \ 36 | && ./configure \ 37 | && make \ 38 | && make install \ 39 | && cd / \ 40 | && apk add --no-network --no-cache --virtual .lua-rundeps \ 41 | libgcc \ 42 | ca-certificates \ 43 | coreutils \ 44 | wget \ 45 | unzip \ 46 | && apk del --no-network .lua-builddeps \ 47 | && rm -rf /tmp/lua /tmp/lua.tar.gz \ 48 | && rm -rf /tmp/luarocks /tmp/luarocks.tar.gz \ 49 | && luarocks --version \ 50 | && luajit -v 51 | 52 | CMD ["luajit"] 53 | 54 | LABEL org.opencontainers.image.source="https://github.com/GUI/lua-docker" \ 55 | org.opencontainers.image.licenses="MIT" 56 | -------------------------------------------------------------------------------- /luajit-2.1/lua52compat-luarocks-alpine3.22/Dockerfile: -------------------------------------------------------------------------------- 1 | # AUTOMATICALLY GENERATED 2 | # DO NOT EDIT THIS FILE DIRECTLY. Edit /Dockerfile.erb and run /update instead. 3 | 4 | FROM alpine:3.22.2 5 | 6 | RUN set -ex \ 7 | && apk add --no-cache --virtual .lua-builddeps \ 8 | ca-certificates \ 9 | curl \ 10 | gcc \ 11 | libc-dev \ 12 | make \ 13 | coreutils \ 14 | gnupg \ 15 | unzip \ 16 | # rundeps 17 | wget \ 18 | && curl -fsSL -o /tmp/lua.tar.gz "https://github.com/LuaJIT/LuaJIT/archive/7152e15489d2077cd299ee23e3d51a4c599ab14f.tar.gz" \ 19 | && cd /tmp \ 20 | && mkdir /tmp/lua \ 21 | && tar -xf /tmp/lua.tar.gz -C /tmp/lua --strip-components=1 \ 22 | && cd /tmp/lua \ 23 | && make CFLAGS="-DLUAJIT_ENABLE_LUA52COMPAT" \ 24 | && make install \ 25 | && curl -fsSL -o /tmp/luarocks.tar.gz "https://luarocks.org/releases/luarocks-3.12.2.tar.gz" \ 26 | && curl -fsSL -o /tmp/luarocks.tar.gz.asc "https://luarocks.org/releases/luarocks-3.12.2.tar.gz.asc" \ 27 | && cd /tmp \ 28 | && export GNUPGHOME="$(mktemp -d)" \ 29 | && export GPG_KEYS="8460980B2B79786DE0C7FCC83FD8F43C2BB3C478" \ 30 | && (gpg --batch --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-keys "$GPG_KEYS" || gpg --batch --keyserver hkp://ipv4.pool.sks-keyservers.net:80 --recv-keys "$GPG_KEYS" || gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$GPG_KEYS" || gpg --batch --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys "$GPG_KEYS") \ 31 | && gpg --batch --verify luarocks.tar.gz.asc luarocks.tar.gz \ 32 | && rm -rf "$GNUPGHOME" \ 33 | && mkdir /tmp/luarocks \ 34 | && tar -xf /tmp/luarocks.tar.gz -C /tmp/luarocks --strip-components=1 \ 35 | && cd /tmp/luarocks \ 36 | && ./configure \ 37 | && make \ 38 | && make install \ 39 | && cd / \ 40 | && apk add --no-network --no-cache --virtual .lua-rundeps \ 41 | libgcc \ 42 | ca-certificates \ 43 | coreutils \ 44 | wget \ 45 | unzip \ 46 | && apk del --no-network .lua-builddeps \ 47 | && rm -rf /tmp/lua /tmp/lua.tar.gz \ 48 | && rm -rf /tmp/luarocks /tmp/luarocks.tar.gz \ 49 | && luarocks --version \ 50 | && luajit -v 51 | 52 | CMD ["luajit"] 53 | 54 | LABEL org.opencontainers.image.source="https://github.com/GUI/lua-docker" \ 55 | org.opencontainers.image.licenses="MIT" 56 | -------------------------------------------------------------------------------- /luajit-2.1/lua52compat-luarocks-alpine3.23/Dockerfile: -------------------------------------------------------------------------------- 1 | # AUTOMATICALLY GENERATED 2 | # DO NOT EDIT THIS FILE DIRECTLY. Edit /Dockerfile.erb and run /update instead. 3 | 4 | FROM alpine:3.23.0 5 | 6 | RUN set -ex \ 7 | && apk add --no-cache --virtual .lua-builddeps \ 8 | ca-certificates \ 9 | curl \ 10 | gcc \ 11 | libc-dev \ 12 | make \ 13 | coreutils \ 14 | gnupg \ 15 | unzip \ 16 | # rundeps 17 | wget \ 18 | && curl -fsSL -o /tmp/lua.tar.gz "https://github.com/LuaJIT/LuaJIT/archive/7152e15489d2077cd299ee23e3d51a4c599ab14f.tar.gz" \ 19 | && cd /tmp \ 20 | && mkdir /tmp/lua \ 21 | && tar -xf /tmp/lua.tar.gz -C /tmp/lua --strip-components=1 \ 22 | && cd /tmp/lua \ 23 | && make CFLAGS="-DLUAJIT_ENABLE_LUA52COMPAT" \ 24 | && make install \ 25 | && curl -fsSL -o /tmp/luarocks.tar.gz "https://luarocks.org/releases/luarocks-3.12.2.tar.gz" \ 26 | && curl -fsSL -o /tmp/luarocks.tar.gz.asc "https://luarocks.org/releases/luarocks-3.12.2.tar.gz.asc" \ 27 | && cd /tmp \ 28 | && export GNUPGHOME="$(mktemp -d)" \ 29 | && export GPG_KEYS="8460980B2B79786DE0C7FCC83FD8F43C2BB3C478" \ 30 | && (gpg --batch --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-keys "$GPG_KEYS" || gpg --batch --keyserver hkp://ipv4.pool.sks-keyservers.net:80 --recv-keys "$GPG_KEYS" || gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$GPG_KEYS" || gpg --batch --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys "$GPG_KEYS") \ 31 | && gpg --batch --verify luarocks.tar.gz.asc luarocks.tar.gz \ 32 | && rm -rf "$GNUPGHOME" \ 33 | && mkdir /tmp/luarocks \ 34 | && tar -xf /tmp/luarocks.tar.gz -C /tmp/luarocks --strip-components=1 \ 35 | && cd /tmp/luarocks \ 36 | && ./configure \ 37 | && make \ 38 | && make install \ 39 | && cd / \ 40 | && apk add --no-network --no-cache --virtual .lua-rundeps \ 41 | libgcc \ 42 | ca-certificates \ 43 | coreutils \ 44 | wget \ 45 | unzip \ 46 | && apk del --no-network .lua-builddeps \ 47 | && rm -rf /tmp/lua /tmp/lua.tar.gz \ 48 | && rm -rf /tmp/luarocks /tmp/luarocks.tar.gz \ 49 | && luarocks --version \ 50 | && luajit -v 51 | 52 | CMD ["luajit"] 53 | 54 | LABEL org.opencontainers.image.source="https://github.com/GUI/lua-docker" \ 55 | org.opencontainers.image.licenses="MIT" 56 | -------------------------------------------------------------------------------- /lua-5.2/luarocks-alpine3.22/Dockerfile: -------------------------------------------------------------------------------- 1 | # AUTOMATICALLY GENERATED 2 | # DO NOT EDIT THIS FILE DIRECTLY. Edit /Dockerfile.erb and run /update instead. 3 | 4 | FROM alpine:3.22.2 5 | 6 | RUN set -ex \ 7 | && apk add --no-cache --virtual .lua-builddeps \ 8 | ca-certificates \ 9 | curl \ 10 | gcc \ 11 | libc-dev \ 12 | make \ 13 | readline-dev \ 14 | coreutils \ 15 | gnupg \ 16 | unzip \ 17 | # rundeps 18 | wget \ 19 | && curl -fsSL -o /tmp/lua.tar.gz "https://www.lua.org/ftp/lua-5.2.4.tar.gz" \ 20 | && cd /tmp \ 21 | && echo "b9e2e4aad6789b3b63a056d442f7b39f0ecfca3ae0f1fc0ae4e9614401b69f4b *lua.tar.gz" | sha256sum -c - \ 22 | && mkdir /tmp/lua \ 23 | && tar -xf /tmp/lua.tar.gz -C /tmp/lua --strip-components=1 \ 24 | && cd /tmp/lua \ 25 | && make linux \ 26 | && make install \ 27 | && curl -fsSL -o /tmp/luarocks.tar.gz "https://luarocks.org/releases/luarocks-3.12.2.tar.gz" \ 28 | && curl -fsSL -o /tmp/luarocks.tar.gz.asc "https://luarocks.org/releases/luarocks-3.12.2.tar.gz.asc" \ 29 | && cd /tmp \ 30 | && export GNUPGHOME="$(mktemp -d)" \ 31 | && export GPG_KEYS="8460980B2B79786DE0C7FCC83FD8F43C2BB3C478" \ 32 | && (gpg --batch --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-keys "$GPG_KEYS" || gpg --batch --keyserver hkp://ipv4.pool.sks-keyservers.net:80 --recv-keys "$GPG_KEYS" || gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$GPG_KEYS" || gpg --batch --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys "$GPG_KEYS") \ 33 | && gpg --batch --verify luarocks.tar.gz.asc luarocks.tar.gz \ 34 | && rm -rf "$GNUPGHOME" \ 35 | && mkdir /tmp/luarocks \ 36 | && tar -xf /tmp/luarocks.tar.gz -C /tmp/luarocks --strip-components=1 \ 37 | && cd /tmp/luarocks \ 38 | && ./configure \ 39 | && make \ 40 | && make install \ 41 | && cd / \ 42 | && apk add --no-network --no-cache --virtual .lua-rundeps \ 43 | readline \ 44 | ca-certificates \ 45 | coreutils \ 46 | wget \ 47 | unzip \ 48 | && apk del --no-network .lua-builddeps \ 49 | && rm -rf /tmp/lua /tmp/lua.tar.gz \ 50 | && rm -rf /tmp/luarocks /tmp/luarocks.tar.gz \ 51 | && luarocks --version \ 52 | && lua -v 53 | 54 | CMD ["lua"] 55 | 56 | LABEL org.opencontainers.image.source="https://github.com/GUI/lua-docker" \ 57 | org.opencontainers.image.licenses="MIT" 58 | -------------------------------------------------------------------------------- /lua-5.2/luarocks-alpine3.23/Dockerfile: -------------------------------------------------------------------------------- 1 | # AUTOMATICALLY GENERATED 2 | # DO NOT EDIT THIS FILE DIRECTLY. Edit /Dockerfile.erb and run /update instead. 3 | 4 | FROM alpine:3.23.0 5 | 6 | RUN set -ex \ 7 | && apk add --no-cache --virtual .lua-builddeps \ 8 | ca-certificates \ 9 | curl \ 10 | gcc \ 11 | libc-dev \ 12 | make \ 13 | readline-dev \ 14 | coreutils \ 15 | gnupg \ 16 | unzip \ 17 | # rundeps 18 | wget \ 19 | && curl -fsSL -o /tmp/lua.tar.gz "https://www.lua.org/ftp/lua-5.2.4.tar.gz" \ 20 | && cd /tmp \ 21 | && echo "b9e2e4aad6789b3b63a056d442f7b39f0ecfca3ae0f1fc0ae4e9614401b69f4b *lua.tar.gz" | sha256sum -c - \ 22 | && mkdir /tmp/lua \ 23 | && tar -xf /tmp/lua.tar.gz -C /tmp/lua --strip-components=1 \ 24 | && cd /tmp/lua \ 25 | && make linux \ 26 | && make install \ 27 | && curl -fsSL -o /tmp/luarocks.tar.gz "https://luarocks.org/releases/luarocks-3.12.2.tar.gz" \ 28 | && curl -fsSL -o /tmp/luarocks.tar.gz.asc "https://luarocks.org/releases/luarocks-3.12.2.tar.gz.asc" \ 29 | && cd /tmp \ 30 | && export GNUPGHOME="$(mktemp -d)" \ 31 | && export GPG_KEYS="8460980B2B79786DE0C7FCC83FD8F43C2BB3C478" \ 32 | && (gpg --batch --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-keys "$GPG_KEYS" || gpg --batch --keyserver hkp://ipv4.pool.sks-keyservers.net:80 --recv-keys "$GPG_KEYS" || gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$GPG_KEYS" || gpg --batch --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys "$GPG_KEYS") \ 33 | && gpg --batch --verify luarocks.tar.gz.asc luarocks.tar.gz \ 34 | && rm -rf "$GNUPGHOME" \ 35 | && mkdir /tmp/luarocks \ 36 | && tar -xf /tmp/luarocks.tar.gz -C /tmp/luarocks --strip-components=1 \ 37 | && cd /tmp/luarocks \ 38 | && ./configure \ 39 | && make \ 40 | && make install \ 41 | && cd / \ 42 | && apk add --no-network --no-cache --virtual .lua-rundeps \ 43 | readline \ 44 | ca-certificates \ 45 | coreutils \ 46 | wget \ 47 | unzip \ 48 | && apk del --no-network .lua-builddeps \ 49 | && rm -rf /tmp/lua /tmp/lua.tar.gz \ 50 | && rm -rf /tmp/luarocks /tmp/luarocks.tar.gz \ 51 | && luarocks --version \ 52 | && lua -v 53 | 54 | CMD ["lua"] 55 | 56 | LABEL org.opencontainers.image.source="https://github.com/GUI/lua-docker" \ 57 | org.opencontainers.image.licenses="MIT" 58 | -------------------------------------------------------------------------------- /lua-5.3/luarocks-alpine3.22/Dockerfile: -------------------------------------------------------------------------------- 1 | # AUTOMATICALLY GENERATED 2 | # DO NOT EDIT THIS FILE DIRECTLY. Edit /Dockerfile.erb and run /update instead. 3 | 4 | FROM alpine:3.22.2 5 | 6 | RUN set -ex \ 7 | && apk add --no-cache --virtual .lua-builddeps \ 8 | ca-certificates \ 9 | curl \ 10 | gcc \ 11 | libc-dev \ 12 | make \ 13 | readline-dev \ 14 | coreutils \ 15 | gnupg \ 16 | unzip \ 17 | # rundeps 18 | wget \ 19 | && curl -fsSL -o /tmp/lua.tar.gz "https://www.lua.org/ftp/lua-5.3.6.tar.gz" \ 20 | && cd /tmp \ 21 | && echo "fc5fd69bb8736323f026672b1b7235da613d7177e72558893a0bdcd320466d60 *lua.tar.gz" | sha256sum -c - \ 22 | && mkdir /tmp/lua \ 23 | && tar -xf /tmp/lua.tar.gz -C /tmp/lua --strip-components=1 \ 24 | && cd /tmp/lua \ 25 | && make linux \ 26 | && make install \ 27 | && curl -fsSL -o /tmp/luarocks.tar.gz "https://luarocks.org/releases/luarocks-3.12.2.tar.gz" \ 28 | && curl -fsSL -o /tmp/luarocks.tar.gz.asc "https://luarocks.org/releases/luarocks-3.12.2.tar.gz.asc" \ 29 | && cd /tmp \ 30 | && export GNUPGHOME="$(mktemp -d)" \ 31 | && export GPG_KEYS="8460980B2B79786DE0C7FCC83FD8F43C2BB3C478" \ 32 | && (gpg --batch --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-keys "$GPG_KEYS" || gpg --batch --keyserver hkp://ipv4.pool.sks-keyservers.net:80 --recv-keys "$GPG_KEYS" || gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$GPG_KEYS" || gpg --batch --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys "$GPG_KEYS") \ 33 | && gpg --batch --verify luarocks.tar.gz.asc luarocks.tar.gz \ 34 | && rm -rf "$GNUPGHOME" \ 35 | && mkdir /tmp/luarocks \ 36 | && tar -xf /tmp/luarocks.tar.gz -C /tmp/luarocks --strip-components=1 \ 37 | && cd /tmp/luarocks \ 38 | && ./configure \ 39 | && make \ 40 | && make install \ 41 | && cd / \ 42 | && apk add --no-network --no-cache --virtual .lua-rundeps \ 43 | readline \ 44 | ca-certificates \ 45 | coreutils \ 46 | wget \ 47 | unzip \ 48 | && apk del --no-network .lua-builddeps \ 49 | && rm -rf /tmp/lua /tmp/lua.tar.gz \ 50 | && rm -rf /tmp/luarocks /tmp/luarocks.tar.gz \ 51 | && luarocks --version \ 52 | && lua -v 53 | 54 | CMD ["lua"] 55 | 56 | LABEL org.opencontainers.image.source="https://github.com/GUI/lua-docker" \ 57 | org.opencontainers.image.licenses="MIT" 58 | -------------------------------------------------------------------------------- /lua-5.3/luarocks-alpine3.23/Dockerfile: -------------------------------------------------------------------------------- 1 | # AUTOMATICALLY GENERATED 2 | # DO NOT EDIT THIS FILE DIRECTLY. Edit /Dockerfile.erb and run /update instead. 3 | 4 | FROM alpine:3.23.0 5 | 6 | RUN set -ex \ 7 | && apk add --no-cache --virtual .lua-builddeps \ 8 | ca-certificates \ 9 | curl \ 10 | gcc \ 11 | libc-dev \ 12 | make \ 13 | readline-dev \ 14 | coreutils \ 15 | gnupg \ 16 | unzip \ 17 | # rundeps 18 | wget \ 19 | && curl -fsSL -o /tmp/lua.tar.gz "https://www.lua.org/ftp/lua-5.3.6.tar.gz" \ 20 | && cd /tmp \ 21 | && echo "fc5fd69bb8736323f026672b1b7235da613d7177e72558893a0bdcd320466d60 *lua.tar.gz" | sha256sum -c - \ 22 | && mkdir /tmp/lua \ 23 | && tar -xf /tmp/lua.tar.gz -C /tmp/lua --strip-components=1 \ 24 | && cd /tmp/lua \ 25 | && make linux \ 26 | && make install \ 27 | && curl -fsSL -o /tmp/luarocks.tar.gz "https://luarocks.org/releases/luarocks-3.12.2.tar.gz" \ 28 | && curl -fsSL -o /tmp/luarocks.tar.gz.asc "https://luarocks.org/releases/luarocks-3.12.2.tar.gz.asc" \ 29 | && cd /tmp \ 30 | && export GNUPGHOME="$(mktemp -d)" \ 31 | && export GPG_KEYS="8460980B2B79786DE0C7FCC83FD8F43C2BB3C478" \ 32 | && (gpg --batch --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-keys "$GPG_KEYS" || gpg --batch --keyserver hkp://ipv4.pool.sks-keyservers.net:80 --recv-keys "$GPG_KEYS" || gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$GPG_KEYS" || gpg --batch --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys "$GPG_KEYS") \ 33 | && gpg --batch --verify luarocks.tar.gz.asc luarocks.tar.gz \ 34 | && rm -rf "$GNUPGHOME" \ 35 | && mkdir /tmp/luarocks \ 36 | && tar -xf /tmp/luarocks.tar.gz -C /tmp/luarocks --strip-components=1 \ 37 | && cd /tmp/luarocks \ 38 | && ./configure \ 39 | && make \ 40 | && make install \ 41 | && cd / \ 42 | && apk add --no-network --no-cache --virtual .lua-rundeps \ 43 | readline \ 44 | ca-certificates \ 45 | coreutils \ 46 | wget \ 47 | unzip \ 48 | && apk del --no-network .lua-builddeps \ 49 | && rm -rf /tmp/lua /tmp/lua.tar.gz \ 50 | && rm -rf /tmp/luarocks /tmp/luarocks.tar.gz \ 51 | && luarocks --version \ 52 | && lua -v 53 | 54 | CMD ["lua"] 55 | 56 | LABEL org.opencontainers.image.source="https://github.com/GUI/lua-docker" \ 57 | org.opencontainers.image.licenses="MIT" 58 | -------------------------------------------------------------------------------- /lua-5.4/luarocks-alpine3.22/Dockerfile: -------------------------------------------------------------------------------- 1 | # AUTOMATICALLY GENERATED 2 | # DO NOT EDIT THIS FILE DIRECTLY. Edit /Dockerfile.erb and run /update instead. 3 | 4 | FROM alpine:3.22.2 5 | 6 | RUN set -ex \ 7 | && apk add --no-cache --virtual .lua-builddeps \ 8 | ca-certificates \ 9 | curl \ 10 | gcc \ 11 | libc-dev \ 12 | make \ 13 | readline-dev \ 14 | coreutils \ 15 | gnupg \ 16 | unzip \ 17 | # rundeps 18 | wget \ 19 | && curl -fsSL -o /tmp/lua.tar.gz "https://www.lua.org/ftp/lua-5.4.8.tar.gz" \ 20 | && cd /tmp \ 21 | && echo "4f18ddae154e793e46eeab727c59ef1c0c0c2b744e7b94219710d76f530629ae *lua.tar.gz" | sha256sum -c - \ 22 | && mkdir /tmp/lua \ 23 | && tar -xf /tmp/lua.tar.gz -C /tmp/lua --strip-components=1 \ 24 | && cd /tmp/lua \ 25 | && make linux \ 26 | && make install \ 27 | && curl -fsSL -o /tmp/luarocks.tar.gz "https://luarocks.org/releases/luarocks-3.12.2.tar.gz" \ 28 | && curl -fsSL -o /tmp/luarocks.tar.gz.asc "https://luarocks.org/releases/luarocks-3.12.2.tar.gz.asc" \ 29 | && cd /tmp \ 30 | && export GNUPGHOME="$(mktemp -d)" \ 31 | && export GPG_KEYS="8460980B2B79786DE0C7FCC83FD8F43C2BB3C478" \ 32 | && (gpg --batch --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-keys "$GPG_KEYS" || gpg --batch --keyserver hkp://ipv4.pool.sks-keyservers.net:80 --recv-keys "$GPG_KEYS" || gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$GPG_KEYS" || gpg --batch --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys "$GPG_KEYS") \ 33 | && gpg --batch --verify luarocks.tar.gz.asc luarocks.tar.gz \ 34 | && rm -rf "$GNUPGHOME" \ 35 | && mkdir /tmp/luarocks \ 36 | && tar -xf /tmp/luarocks.tar.gz -C /tmp/luarocks --strip-components=1 \ 37 | && cd /tmp/luarocks \ 38 | && ./configure \ 39 | && make \ 40 | && make install \ 41 | && cd / \ 42 | && apk add --no-network --no-cache --virtual .lua-rundeps \ 43 | readline \ 44 | ca-certificates \ 45 | coreutils \ 46 | wget \ 47 | unzip \ 48 | && apk del --no-network .lua-builddeps \ 49 | && rm -rf /tmp/lua /tmp/lua.tar.gz \ 50 | && rm -rf /tmp/luarocks /tmp/luarocks.tar.gz \ 51 | && luarocks --version \ 52 | && lua -v 53 | 54 | CMD ["lua"] 55 | 56 | LABEL org.opencontainers.image.source="https://github.com/GUI/lua-docker" \ 57 | org.opencontainers.image.licenses="MIT" 58 | -------------------------------------------------------------------------------- /lua-5.4/luarocks-alpine3.23/Dockerfile: -------------------------------------------------------------------------------- 1 | # AUTOMATICALLY GENERATED 2 | # DO NOT EDIT THIS FILE DIRECTLY. Edit /Dockerfile.erb and run /update instead. 3 | 4 | FROM alpine:3.23.0 5 | 6 | RUN set -ex \ 7 | && apk add --no-cache --virtual .lua-builddeps \ 8 | ca-certificates \ 9 | curl \ 10 | gcc \ 11 | libc-dev \ 12 | make \ 13 | readline-dev \ 14 | coreutils \ 15 | gnupg \ 16 | unzip \ 17 | # rundeps 18 | wget \ 19 | && curl -fsSL -o /tmp/lua.tar.gz "https://www.lua.org/ftp/lua-5.4.8.tar.gz" \ 20 | && cd /tmp \ 21 | && echo "4f18ddae154e793e46eeab727c59ef1c0c0c2b744e7b94219710d76f530629ae *lua.tar.gz" | sha256sum -c - \ 22 | && mkdir /tmp/lua \ 23 | && tar -xf /tmp/lua.tar.gz -C /tmp/lua --strip-components=1 \ 24 | && cd /tmp/lua \ 25 | && make linux \ 26 | && make install \ 27 | && curl -fsSL -o /tmp/luarocks.tar.gz "https://luarocks.org/releases/luarocks-3.12.2.tar.gz" \ 28 | && curl -fsSL -o /tmp/luarocks.tar.gz.asc "https://luarocks.org/releases/luarocks-3.12.2.tar.gz.asc" \ 29 | && cd /tmp \ 30 | && export GNUPGHOME="$(mktemp -d)" \ 31 | && export GPG_KEYS="8460980B2B79786DE0C7FCC83FD8F43C2BB3C478" \ 32 | && (gpg --batch --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-keys "$GPG_KEYS" || gpg --batch --keyserver hkp://ipv4.pool.sks-keyservers.net:80 --recv-keys "$GPG_KEYS" || gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$GPG_KEYS" || gpg --batch --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys "$GPG_KEYS") \ 33 | && gpg --batch --verify luarocks.tar.gz.asc luarocks.tar.gz \ 34 | && rm -rf "$GNUPGHOME" \ 35 | && mkdir /tmp/luarocks \ 36 | && tar -xf /tmp/luarocks.tar.gz -C /tmp/luarocks --strip-components=1 \ 37 | && cd /tmp/luarocks \ 38 | && ./configure \ 39 | && make \ 40 | && make install \ 41 | && cd / \ 42 | && apk add --no-network --no-cache --virtual .lua-rundeps \ 43 | readline \ 44 | ca-certificates \ 45 | coreutils \ 46 | wget \ 47 | unzip \ 48 | && apk del --no-network .lua-builddeps \ 49 | && rm -rf /tmp/lua /tmp/lua.tar.gz \ 50 | && rm -rf /tmp/luarocks /tmp/luarocks.tar.gz \ 51 | && luarocks --version \ 52 | && lua -v 53 | 54 | CMD ["lua"] 55 | 56 | LABEL org.opencontainers.image.source="https://github.com/GUI/lua-docker" \ 57 | org.opencontainers.image.licenses="MIT" 58 | -------------------------------------------------------------------------------- /luajit-2.1/luarocks-plucky/Dockerfile: -------------------------------------------------------------------------------- 1 | # AUTOMATICALLY GENERATED 2 | # DO NOT EDIT THIS FILE DIRECTLY. Edit /Dockerfile.erb and run /update instead. 3 | 4 | FROM ubuntu:plucky-20251001 5 | 6 | RUN set -ex \ 7 | && saved_apt_mark="$(apt-mark showmanual)" \ 8 | && apt-get update \ 9 | && apt-get install -y --no-install-recommends \ 10 | ca-certificates \ 11 | curl \ 12 | gcc \ 13 | libc6-dev \ 14 | make \ 15 | dirmngr \ 16 | gnupg \ 17 | unzip \ 18 | && curl -fsSL -o /tmp/lua.tar.gz "https://github.com/LuaJIT/LuaJIT/archive/7152e15489d2077cd299ee23e3d51a4c599ab14f.tar.gz" \ 19 | && cd /tmp \ 20 | && mkdir /tmp/lua \ 21 | && tar -xf /tmp/lua.tar.gz -C /tmp/lua --strip-components=1 \ 22 | && cd /tmp/lua \ 23 | && make \ 24 | && make install \ 25 | && curl -fsSL -o /tmp/luarocks.tar.gz "https://luarocks.org/releases/luarocks-3.12.2.tar.gz" \ 26 | && curl -fsSL -o /tmp/luarocks.tar.gz.asc "https://luarocks.org/releases/luarocks-3.12.2.tar.gz.asc" \ 27 | && cd /tmp \ 28 | && export GNUPGHOME="$(mktemp -d)" \ 29 | && export GPG_KEYS="8460980B2B79786DE0C7FCC83FD8F43C2BB3C478" \ 30 | && (gpg --batch --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-keys "$GPG_KEYS" || gpg --batch --keyserver hkp://ipv4.pool.sks-keyservers.net:80 --recv-keys "$GPG_KEYS" || gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$GPG_KEYS" || gpg --batch --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys "$GPG_KEYS") \ 31 | && gpg --batch --verify luarocks.tar.gz.asc luarocks.tar.gz \ 32 | && rm -rf "$GNUPGHOME" \ 33 | && mkdir /tmp/luarocks \ 34 | && tar -xf /tmp/luarocks.tar.gz -C /tmp/luarocks --strip-components=1 \ 35 | && cd /tmp/luarocks \ 36 | && ./configure \ 37 | && make \ 38 | && make install \ 39 | && cd / \ 40 | && apt-mark auto '.*' > /dev/null \ 41 | && if [ -n "$saved_apt_mark" ]; then \ 42 | apt-mark manual $saved_apt_mark; \ 43 | fi \ 44 | && apt-mark manual \ 45 | ca-certificates \ 46 | curl \ 47 | unzip \ 48 | && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \ 49 | && rm -rf /var/lib/apt/lists/* /var/lib/dpkg/*-old /var/cache/* /var/log/* \ 50 | && rm -rf /tmp/lua /tmp/lua.tar.gz \ 51 | && rm -rf /tmp/luarocks /tmp/luarocks.tar.gz \ 52 | && luarocks --version \ 53 | && luajit -v 54 | 55 | CMD ["luajit"] 56 | 57 | LABEL org.opencontainers.image.source="https://github.com/GUI/lua-docker" \ 58 | org.opencontainers.image.licenses="MIT" 59 | -------------------------------------------------------------------------------- /luajit-2.1/luarocks-trixie/Dockerfile: -------------------------------------------------------------------------------- 1 | # AUTOMATICALLY GENERATED 2 | # DO NOT EDIT THIS FILE DIRECTLY. Edit /Dockerfile.erb and run /update instead. 3 | 4 | FROM debian:trixie-20251208 5 | 6 | RUN set -ex \ 7 | && saved_apt_mark="$(apt-mark showmanual)" \ 8 | && apt-get update \ 9 | && apt-get install -y --no-install-recommends \ 10 | ca-certificates \ 11 | curl \ 12 | gcc \ 13 | libc6-dev \ 14 | make \ 15 | dirmngr \ 16 | gnupg \ 17 | unzip \ 18 | && curl -fsSL -o /tmp/lua.tar.gz "https://github.com/LuaJIT/LuaJIT/archive/7152e15489d2077cd299ee23e3d51a4c599ab14f.tar.gz" \ 19 | && cd /tmp \ 20 | && mkdir /tmp/lua \ 21 | && tar -xf /tmp/lua.tar.gz -C /tmp/lua --strip-components=1 \ 22 | && cd /tmp/lua \ 23 | && make \ 24 | && make install \ 25 | && curl -fsSL -o /tmp/luarocks.tar.gz "https://luarocks.org/releases/luarocks-3.12.2.tar.gz" \ 26 | && curl -fsSL -o /tmp/luarocks.tar.gz.asc "https://luarocks.org/releases/luarocks-3.12.2.tar.gz.asc" \ 27 | && cd /tmp \ 28 | && export GNUPGHOME="$(mktemp -d)" \ 29 | && export GPG_KEYS="8460980B2B79786DE0C7FCC83FD8F43C2BB3C478" \ 30 | && (gpg --batch --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-keys "$GPG_KEYS" || gpg --batch --keyserver hkp://ipv4.pool.sks-keyservers.net:80 --recv-keys "$GPG_KEYS" || gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$GPG_KEYS" || gpg --batch --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys "$GPG_KEYS") \ 31 | && gpg --batch --verify luarocks.tar.gz.asc luarocks.tar.gz \ 32 | && rm -rf "$GNUPGHOME" \ 33 | && mkdir /tmp/luarocks \ 34 | && tar -xf /tmp/luarocks.tar.gz -C /tmp/luarocks --strip-components=1 \ 35 | && cd /tmp/luarocks \ 36 | && ./configure \ 37 | && make \ 38 | && make install \ 39 | && cd / \ 40 | && apt-mark auto '.*' > /dev/null \ 41 | && if [ -n "$saved_apt_mark" ]; then \ 42 | apt-mark manual $saved_apt_mark; \ 43 | fi \ 44 | && apt-mark manual \ 45 | ca-certificates \ 46 | curl \ 47 | unzip \ 48 | && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \ 49 | && rm -rf /var/lib/apt/lists/* /var/lib/dpkg/*-old /var/cache/* /var/log/* \ 50 | && rm -rf /tmp/lua /tmp/lua.tar.gz \ 51 | && rm -rf /tmp/luarocks /tmp/luarocks.tar.gz \ 52 | && luarocks --version \ 53 | && luajit -v 54 | 55 | CMD ["luajit"] 56 | 57 | LABEL org.opencontainers.image.source="https://github.com/GUI/lua-docker" \ 58 | org.opencontainers.image.licenses="MIT" 59 | -------------------------------------------------------------------------------- /luajit-2.1/luarocks-bookworm/Dockerfile: -------------------------------------------------------------------------------- 1 | # AUTOMATICALLY GENERATED 2 | # DO NOT EDIT THIS FILE DIRECTLY. Edit /Dockerfile.erb and run /update instead. 3 | 4 | FROM debian:bookworm-20251208 5 | 6 | RUN set -ex \ 7 | && saved_apt_mark="$(apt-mark showmanual)" \ 8 | && apt-get update \ 9 | && apt-get install -y --no-install-recommends \ 10 | ca-certificates \ 11 | curl \ 12 | gcc \ 13 | libc6-dev \ 14 | make \ 15 | dirmngr \ 16 | gnupg \ 17 | unzip \ 18 | && curl -fsSL -o /tmp/lua.tar.gz "https://github.com/LuaJIT/LuaJIT/archive/7152e15489d2077cd299ee23e3d51a4c599ab14f.tar.gz" \ 19 | && cd /tmp \ 20 | && mkdir /tmp/lua \ 21 | && tar -xf /tmp/lua.tar.gz -C /tmp/lua --strip-components=1 \ 22 | && cd /tmp/lua \ 23 | && make \ 24 | && make install \ 25 | && curl -fsSL -o /tmp/luarocks.tar.gz "https://luarocks.org/releases/luarocks-3.12.2.tar.gz" \ 26 | && curl -fsSL -o /tmp/luarocks.tar.gz.asc "https://luarocks.org/releases/luarocks-3.12.2.tar.gz.asc" \ 27 | && cd /tmp \ 28 | && export GNUPGHOME="$(mktemp -d)" \ 29 | && export GPG_KEYS="8460980B2B79786DE0C7FCC83FD8F43C2BB3C478" \ 30 | && (gpg --batch --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-keys "$GPG_KEYS" || gpg --batch --keyserver hkp://ipv4.pool.sks-keyservers.net:80 --recv-keys "$GPG_KEYS" || gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$GPG_KEYS" || gpg --batch --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys "$GPG_KEYS") \ 31 | && gpg --batch --verify luarocks.tar.gz.asc luarocks.tar.gz \ 32 | && rm -rf "$GNUPGHOME" \ 33 | && mkdir /tmp/luarocks \ 34 | && tar -xf /tmp/luarocks.tar.gz -C /tmp/luarocks --strip-components=1 \ 35 | && cd /tmp/luarocks \ 36 | && ./configure \ 37 | && make \ 38 | && make install \ 39 | && cd / \ 40 | && apt-mark auto '.*' > /dev/null \ 41 | && if [ -n "$saved_apt_mark" ]; then \ 42 | apt-mark manual $saved_apt_mark; \ 43 | fi \ 44 | && apt-mark manual \ 45 | ca-certificates \ 46 | curl \ 47 | unzip \ 48 | && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \ 49 | && rm -rf /var/lib/apt/lists/* /var/lib/dpkg/*-old /var/cache/* /var/log/* \ 50 | && rm -rf /tmp/lua /tmp/lua.tar.gz \ 51 | && rm -rf /tmp/luarocks /tmp/luarocks.tar.gz \ 52 | && luarocks --version \ 53 | && luajit -v 54 | 55 | CMD ["luajit"] 56 | 57 | LABEL org.opencontainers.image.source="https://github.com/GUI/lua-docker" \ 58 | org.opencontainers.image.licenses="MIT" 59 | -------------------------------------------------------------------------------- /luajit-2.1/luarocks-rolling/Dockerfile: -------------------------------------------------------------------------------- 1 | # AUTOMATICALLY GENERATED 2 | # DO NOT EDIT THIS FILE DIRECTLY. Edit /Dockerfile.erb and run /update instead. 3 | 4 | FROM ubuntu:questing-20251029 5 | 6 | RUN set -ex \ 7 | && saved_apt_mark="$(apt-mark showmanual)" \ 8 | && apt-get update \ 9 | && apt-get install -y --no-install-recommends \ 10 | ca-certificates \ 11 | curl \ 12 | gcc \ 13 | libc6-dev \ 14 | make \ 15 | dirmngr \ 16 | gnupg \ 17 | unzip \ 18 | && curl -fsSL -o /tmp/lua.tar.gz "https://github.com/LuaJIT/LuaJIT/archive/7152e15489d2077cd299ee23e3d51a4c599ab14f.tar.gz" \ 19 | && cd /tmp \ 20 | && mkdir /tmp/lua \ 21 | && tar -xf /tmp/lua.tar.gz -C /tmp/lua --strip-components=1 \ 22 | && cd /tmp/lua \ 23 | && make \ 24 | && make install \ 25 | && curl -fsSL -o /tmp/luarocks.tar.gz "https://luarocks.org/releases/luarocks-3.12.2.tar.gz" \ 26 | && curl -fsSL -o /tmp/luarocks.tar.gz.asc "https://luarocks.org/releases/luarocks-3.12.2.tar.gz.asc" \ 27 | && cd /tmp \ 28 | && export GNUPGHOME="$(mktemp -d)" \ 29 | && export GPG_KEYS="8460980B2B79786DE0C7FCC83FD8F43C2BB3C478" \ 30 | && (gpg --batch --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-keys "$GPG_KEYS" || gpg --batch --keyserver hkp://ipv4.pool.sks-keyservers.net:80 --recv-keys "$GPG_KEYS" || gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$GPG_KEYS" || gpg --batch --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys "$GPG_KEYS") \ 31 | && gpg --batch --verify luarocks.tar.gz.asc luarocks.tar.gz \ 32 | && rm -rf "$GNUPGHOME" \ 33 | && mkdir /tmp/luarocks \ 34 | && tar -xf /tmp/luarocks.tar.gz -C /tmp/luarocks --strip-components=1 \ 35 | && cd /tmp/luarocks \ 36 | && ./configure \ 37 | && make \ 38 | && make install \ 39 | && cd / \ 40 | && apt-mark auto '.*' > /dev/null \ 41 | && if [ -n "$saved_apt_mark" ]; then \ 42 | apt-mark manual $saved_apt_mark; \ 43 | fi \ 44 | && apt-mark manual \ 45 | ca-certificates \ 46 | curl \ 47 | unzip \ 48 | && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \ 49 | && rm -rf /var/lib/apt/lists/* /var/lib/dpkg/*-old /var/cache/* /var/log/* \ 50 | && rm -rf /tmp/lua /tmp/lua.tar.gz \ 51 | && rm -rf /tmp/luarocks /tmp/luarocks.tar.gz \ 52 | && luarocks --version \ 53 | && luajit -v 54 | 55 | CMD ["luajit"] 56 | 57 | LABEL org.opencontainers.image.source="https://github.com/GUI/lua-docker" \ 58 | org.opencontainers.image.licenses="MIT" 59 | -------------------------------------------------------------------------------- /luajit-2.1/lua52compat-luarocks-plucky/Dockerfile: -------------------------------------------------------------------------------- 1 | # AUTOMATICALLY GENERATED 2 | # DO NOT EDIT THIS FILE DIRECTLY. Edit /Dockerfile.erb and run /update instead. 3 | 4 | FROM ubuntu:plucky-20251001 5 | 6 | RUN set -ex \ 7 | && saved_apt_mark="$(apt-mark showmanual)" \ 8 | && apt-get update \ 9 | && apt-get install -y --no-install-recommends \ 10 | ca-certificates \ 11 | curl \ 12 | gcc \ 13 | libc6-dev \ 14 | make \ 15 | dirmngr \ 16 | gnupg \ 17 | unzip \ 18 | && curl -fsSL -o /tmp/lua.tar.gz "https://github.com/LuaJIT/LuaJIT/archive/7152e15489d2077cd299ee23e3d51a4c599ab14f.tar.gz" \ 19 | && cd /tmp \ 20 | && mkdir /tmp/lua \ 21 | && tar -xf /tmp/lua.tar.gz -C /tmp/lua --strip-components=1 \ 22 | && cd /tmp/lua \ 23 | && make CFLAGS="-DLUAJIT_ENABLE_LUA52COMPAT" \ 24 | && make install \ 25 | && curl -fsSL -o /tmp/luarocks.tar.gz "https://luarocks.org/releases/luarocks-3.12.2.tar.gz" \ 26 | && curl -fsSL -o /tmp/luarocks.tar.gz.asc "https://luarocks.org/releases/luarocks-3.12.2.tar.gz.asc" \ 27 | && cd /tmp \ 28 | && export GNUPGHOME="$(mktemp -d)" \ 29 | && export GPG_KEYS="8460980B2B79786DE0C7FCC83FD8F43C2BB3C478" \ 30 | && (gpg --batch --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-keys "$GPG_KEYS" || gpg --batch --keyserver hkp://ipv4.pool.sks-keyservers.net:80 --recv-keys "$GPG_KEYS" || gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$GPG_KEYS" || gpg --batch --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys "$GPG_KEYS") \ 31 | && gpg --batch --verify luarocks.tar.gz.asc luarocks.tar.gz \ 32 | && rm -rf "$GNUPGHOME" \ 33 | && mkdir /tmp/luarocks \ 34 | && tar -xf /tmp/luarocks.tar.gz -C /tmp/luarocks --strip-components=1 \ 35 | && cd /tmp/luarocks \ 36 | && ./configure \ 37 | && make \ 38 | && make install \ 39 | && cd / \ 40 | && apt-mark auto '.*' > /dev/null \ 41 | && if [ -n "$saved_apt_mark" ]; then \ 42 | apt-mark manual $saved_apt_mark; \ 43 | fi \ 44 | && apt-mark manual \ 45 | ca-certificates \ 46 | curl \ 47 | unzip \ 48 | && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \ 49 | && rm -rf /var/lib/apt/lists/* /var/lib/dpkg/*-old /var/cache/* /var/log/* \ 50 | && rm -rf /tmp/lua /tmp/lua.tar.gz \ 51 | && rm -rf /tmp/luarocks /tmp/luarocks.tar.gz \ 52 | && luarocks --version \ 53 | && luajit -v 54 | 55 | CMD ["luajit"] 56 | 57 | LABEL org.opencontainers.image.source="https://github.com/GUI/lua-docker" \ 58 | org.opencontainers.image.licenses="MIT" 59 | -------------------------------------------------------------------------------- /luajit-2.1/lua52compat-luarocks-rolling/Dockerfile: -------------------------------------------------------------------------------- 1 | # AUTOMATICALLY GENERATED 2 | # DO NOT EDIT THIS FILE DIRECTLY. Edit /Dockerfile.erb and run /update instead. 3 | 4 | FROM ubuntu:questing-20251029 5 | 6 | RUN set -ex \ 7 | && saved_apt_mark="$(apt-mark showmanual)" \ 8 | && apt-get update \ 9 | && apt-get install -y --no-install-recommends \ 10 | ca-certificates \ 11 | curl \ 12 | gcc \ 13 | libc6-dev \ 14 | make \ 15 | dirmngr \ 16 | gnupg \ 17 | unzip \ 18 | && curl -fsSL -o /tmp/lua.tar.gz "https://github.com/LuaJIT/LuaJIT/archive/7152e15489d2077cd299ee23e3d51a4c599ab14f.tar.gz" \ 19 | && cd /tmp \ 20 | && mkdir /tmp/lua \ 21 | && tar -xf /tmp/lua.tar.gz -C /tmp/lua --strip-components=1 \ 22 | && cd /tmp/lua \ 23 | && make CFLAGS="-DLUAJIT_ENABLE_LUA52COMPAT" \ 24 | && make install \ 25 | && curl -fsSL -o /tmp/luarocks.tar.gz "https://luarocks.org/releases/luarocks-3.12.2.tar.gz" \ 26 | && curl -fsSL -o /tmp/luarocks.tar.gz.asc "https://luarocks.org/releases/luarocks-3.12.2.tar.gz.asc" \ 27 | && cd /tmp \ 28 | && export GNUPGHOME="$(mktemp -d)" \ 29 | && export GPG_KEYS="8460980B2B79786DE0C7FCC83FD8F43C2BB3C478" \ 30 | && (gpg --batch --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-keys "$GPG_KEYS" || gpg --batch --keyserver hkp://ipv4.pool.sks-keyservers.net:80 --recv-keys "$GPG_KEYS" || gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$GPG_KEYS" || gpg --batch --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys "$GPG_KEYS") \ 31 | && gpg --batch --verify luarocks.tar.gz.asc luarocks.tar.gz \ 32 | && rm -rf "$GNUPGHOME" \ 33 | && mkdir /tmp/luarocks \ 34 | && tar -xf /tmp/luarocks.tar.gz -C /tmp/luarocks --strip-components=1 \ 35 | && cd /tmp/luarocks \ 36 | && ./configure \ 37 | && make \ 38 | && make install \ 39 | && cd / \ 40 | && apt-mark auto '.*' > /dev/null \ 41 | && if [ -n "$saved_apt_mark" ]; then \ 42 | apt-mark manual $saved_apt_mark; \ 43 | fi \ 44 | && apt-mark manual \ 45 | ca-certificates \ 46 | curl \ 47 | unzip \ 48 | && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \ 49 | && rm -rf /var/lib/apt/lists/* /var/lib/dpkg/*-old /var/cache/* /var/log/* \ 50 | && rm -rf /tmp/lua /tmp/lua.tar.gz \ 51 | && rm -rf /tmp/luarocks /tmp/luarocks.tar.gz \ 52 | && luarocks --version \ 53 | && luajit -v 54 | 55 | CMD ["luajit"] 56 | 57 | LABEL org.opencontainers.image.source="https://github.com/GUI/lua-docker" \ 58 | org.opencontainers.image.licenses="MIT" 59 | -------------------------------------------------------------------------------- /luajit-2.1/lua52compat-luarocks-trixie/Dockerfile: -------------------------------------------------------------------------------- 1 | # AUTOMATICALLY GENERATED 2 | # DO NOT EDIT THIS FILE DIRECTLY. Edit /Dockerfile.erb and run /update instead. 3 | 4 | FROM debian:trixie-20251208 5 | 6 | RUN set -ex \ 7 | && saved_apt_mark="$(apt-mark showmanual)" \ 8 | && apt-get update \ 9 | && apt-get install -y --no-install-recommends \ 10 | ca-certificates \ 11 | curl \ 12 | gcc \ 13 | libc6-dev \ 14 | make \ 15 | dirmngr \ 16 | gnupg \ 17 | unzip \ 18 | && curl -fsSL -o /tmp/lua.tar.gz "https://github.com/LuaJIT/LuaJIT/archive/7152e15489d2077cd299ee23e3d51a4c599ab14f.tar.gz" \ 19 | && cd /tmp \ 20 | && mkdir /tmp/lua \ 21 | && tar -xf /tmp/lua.tar.gz -C /tmp/lua --strip-components=1 \ 22 | && cd /tmp/lua \ 23 | && make CFLAGS="-DLUAJIT_ENABLE_LUA52COMPAT" \ 24 | && make install \ 25 | && curl -fsSL -o /tmp/luarocks.tar.gz "https://luarocks.org/releases/luarocks-3.12.2.tar.gz" \ 26 | && curl -fsSL -o /tmp/luarocks.tar.gz.asc "https://luarocks.org/releases/luarocks-3.12.2.tar.gz.asc" \ 27 | && cd /tmp \ 28 | && export GNUPGHOME="$(mktemp -d)" \ 29 | && export GPG_KEYS="8460980B2B79786DE0C7FCC83FD8F43C2BB3C478" \ 30 | && (gpg --batch --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-keys "$GPG_KEYS" || gpg --batch --keyserver hkp://ipv4.pool.sks-keyservers.net:80 --recv-keys "$GPG_KEYS" || gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$GPG_KEYS" || gpg --batch --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys "$GPG_KEYS") \ 31 | && gpg --batch --verify luarocks.tar.gz.asc luarocks.tar.gz \ 32 | && rm -rf "$GNUPGHOME" \ 33 | && mkdir /tmp/luarocks \ 34 | && tar -xf /tmp/luarocks.tar.gz -C /tmp/luarocks --strip-components=1 \ 35 | && cd /tmp/luarocks \ 36 | && ./configure \ 37 | && make \ 38 | && make install \ 39 | && cd / \ 40 | && apt-mark auto '.*' > /dev/null \ 41 | && if [ -n "$saved_apt_mark" ]; then \ 42 | apt-mark manual $saved_apt_mark; \ 43 | fi \ 44 | && apt-mark manual \ 45 | ca-certificates \ 46 | curl \ 47 | unzip \ 48 | && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \ 49 | && rm -rf /var/lib/apt/lists/* /var/lib/dpkg/*-old /var/cache/* /var/log/* \ 50 | && rm -rf /tmp/lua /tmp/lua.tar.gz \ 51 | && rm -rf /tmp/luarocks /tmp/luarocks.tar.gz \ 52 | && luarocks --version \ 53 | && luajit -v 54 | 55 | CMD ["luajit"] 56 | 57 | LABEL org.opencontainers.image.source="https://github.com/GUI/lua-docker" \ 58 | org.opencontainers.image.licenses="MIT" 59 | -------------------------------------------------------------------------------- /luajit-2.1/lua52compat-luarocks-bookworm/Dockerfile: -------------------------------------------------------------------------------- 1 | # AUTOMATICALLY GENERATED 2 | # DO NOT EDIT THIS FILE DIRECTLY. Edit /Dockerfile.erb and run /update instead. 3 | 4 | FROM debian:bookworm-20251208 5 | 6 | RUN set -ex \ 7 | && saved_apt_mark="$(apt-mark showmanual)" \ 8 | && apt-get update \ 9 | && apt-get install -y --no-install-recommends \ 10 | ca-certificates \ 11 | curl \ 12 | gcc \ 13 | libc6-dev \ 14 | make \ 15 | dirmngr \ 16 | gnupg \ 17 | unzip \ 18 | && curl -fsSL -o /tmp/lua.tar.gz "https://github.com/LuaJIT/LuaJIT/archive/7152e15489d2077cd299ee23e3d51a4c599ab14f.tar.gz" \ 19 | && cd /tmp \ 20 | && mkdir /tmp/lua \ 21 | && tar -xf /tmp/lua.tar.gz -C /tmp/lua --strip-components=1 \ 22 | && cd /tmp/lua \ 23 | && make CFLAGS="-DLUAJIT_ENABLE_LUA52COMPAT" \ 24 | && make install \ 25 | && curl -fsSL -o /tmp/luarocks.tar.gz "https://luarocks.org/releases/luarocks-3.12.2.tar.gz" \ 26 | && curl -fsSL -o /tmp/luarocks.tar.gz.asc "https://luarocks.org/releases/luarocks-3.12.2.tar.gz.asc" \ 27 | && cd /tmp \ 28 | && export GNUPGHOME="$(mktemp -d)" \ 29 | && export GPG_KEYS="8460980B2B79786DE0C7FCC83FD8F43C2BB3C478" \ 30 | && (gpg --batch --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-keys "$GPG_KEYS" || gpg --batch --keyserver hkp://ipv4.pool.sks-keyservers.net:80 --recv-keys "$GPG_KEYS" || gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$GPG_KEYS" || gpg --batch --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys "$GPG_KEYS") \ 31 | && gpg --batch --verify luarocks.tar.gz.asc luarocks.tar.gz \ 32 | && rm -rf "$GNUPGHOME" \ 33 | && mkdir /tmp/luarocks \ 34 | && tar -xf /tmp/luarocks.tar.gz -C /tmp/luarocks --strip-components=1 \ 35 | && cd /tmp/luarocks \ 36 | && ./configure \ 37 | && make \ 38 | && make install \ 39 | && cd / \ 40 | && apt-mark auto '.*' > /dev/null \ 41 | && if [ -n "$saved_apt_mark" ]; then \ 42 | apt-mark manual $saved_apt_mark; \ 43 | fi \ 44 | && apt-mark manual \ 45 | ca-certificates \ 46 | curl \ 47 | unzip \ 48 | && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \ 49 | && rm -rf /var/lib/apt/lists/* /var/lib/dpkg/*-old /var/cache/* /var/log/* \ 50 | && rm -rf /tmp/lua /tmp/lua.tar.gz \ 51 | && rm -rf /tmp/luarocks /tmp/luarocks.tar.gz \ 52 | && luarocks --version \ 53 | && luajit -v 54 | 55 | CMD ["luajit"] 56 | 57 | LABEL org.opencontainers.image.source="https://github.com/GUI/lua-docker" \ 58 | org.opencontainers.image.licenses="MIT" 59 | -------------------------------------------------------------------------------- /README.luajit.md.erb: -------------------------------------------------------------------------------- 1 | # luajit-docker 2 | 3 | Minimal, automated, and up-to-date Docker images for different LuaJIT versions. 4 | 5 | Provides variants for: 6 | 7 | - Debian, Alpine, Ubuntu, and CentOS base images 8 | - With LuaRocks 9 | - LuaJIT built with Lua 5.2 compatibility mode 10 | 11 | New versions of LuaJIT and LuaRocks should automatically be detected and trigger new docker images to built, tagged, and pushed by a daily [GitHub Actions workflow](https://github.com/GUI/lua-docker/blob/main/.github/workflows/main.yml). 12 | 13 | ## Supported Tags and Respective Dockerfile Links 14 | 15 | <% tags.fetch("luajit").each do |data| -%> 16 | - <%= data.fetch(:variant_tags).map { |t| "`#{t}`" }.join(", ") %>: [<%= data.fetch(:filename) %>](https://github.com/GUI/lua-docker/blob/main/<%= data.fetch(:filename) %>) 17 | <% end -%> 18 | 19 | ## Image Variants 20 | 21 | ### `nickblah/luajit:` 22 | The default LuaJIT image. Provides LuaJIT. Uses Debian Linux for base image. 23 | 24 | ### `nickblah/luajit:-alpine` 25 | Provides LuaJIT. Uses Alpine Linux for base image. 26 | 27 | ### `nickblah/luajit:-luarocks` 28 | Provides LuaJIT and LuaRocks. Uses Debian Linux for base image. 29 | 30 | ### `nickblah/luajit:-luarocks-alpine` 31 | Provides LuaJIT and LuaRocks. Uses Alpine Linux for base image. 32 | 33 | ### `nickblah/luajit:-lua52compat` 34 | Provides LuaJIT. LuaJIT compiled with `LUAJIT_ENABLE_LUA52COMPAT`. Uses Debian Linux for base image. 35 | 36 | ### `nickblah/luajit:-lua52compat-alpine` 37 | Provides LuaJIT. LuaJIT compiled with `LUAJIT_ENABLE_LUA52COMPAT`. Uses Alpine Linux for base image. 38 | 39 | ### `nickblah/luajit:-lua52compat-luarocks` 40 | Provides LuaJIT and LuaRocks. LuaJIT compiled with `LUAJIT_ENABLE_LUA52COMPAT`. Uses Debian Linux for base image. 41 | 42 | ### `nickblah/luajit:-lua52compat-luarocks-alpine` 43 | Provides LuaJIT and LuaRocks. LuaJIT compiled with `LUAJIT_ENABLE_LUA52COMPAT`. Uses Alpine Linux for base image. 44 | 45 | ## Installing C Libraries 46 | 47 | These base images are minimal, so they only contain the necessary dependencies for running Lua and installing pure-Lua LuaRocks modules. If you need to install LuaRocks modules that include C extensions or need compiling/building, then you'll first need to install the necessary dependencies (for example, make, gcc, etc). The exact dependencies may vary depending on the module's requirements, but to install basic build dependencies, the following installation commands can be used: 48 | 49 | - For Debian based images: 50 | ```sh 51 | apt-get update && apt-get install -y build-essential 52 | ``` 53 | - For Alpine based images: 54 | ```sh 55 | apk add --no-cache build-base 56 | ``` 57 | -------------------------------------------------------------------------------- /lua-5.2/luarocks-plucky/Dockerfile: -------------------------------------------------------------------------------- 1 | # AUTOMATICALLY GENERATED 2 | # DO NOT EDIT THIS FILE DIRECTLY. Edit /Dockerfile.erb and run /update instead. 3 | 4 | FROM ubuntu:plucky-20251001 5 | 6 | RUN set -ex \ 7 | && saved_apt_mark="$(apt-mark showmanual)" \ 8 | && apt-get update \ 9 | && apt-get install -y --no-install-recommends \ 10 | ca-certificates \ 11 | curl \ 12 | gcc \ 13 | libc6-dev \ 14 | make \ 15 | libreadline-dev \ 16 | dirmngr \ 17 | gnupg \ 18 | unzip \ 19 | && curl -fsSL -o /tmp/lua.tar.gz "https://www.lua.org/ftp/lua-5.2.4.tar.gz" \ 20 | && cd /tmp \ 21 | && echo "b9e2e4aad6789b3b63a056d442f7b39f0ecfca3ae0f1fc0ae4e9614401b69f4b *lua.tar.gz" | sha256sum -c - \ 22 | && mkdir /tmp/lua \ 23 | && tar -xf /tmp/lua.tar.gz -C /tmp/lua --strip-components=1 \ 24 | && cd /tmp/lua \ 25 | && make linux \ 26 | && make install \ 27 | && curl -fsSL -o /tmp/luarocks.tar.gz "https://luarocks.org/releases/luarocks-3.12.2.tar.gz" \ 28 | && curl -fsSL -o /tmp/luarocks.tar.gz.asc "https://luarocks.org/releases/luarocks-3.12.2.tar.gz.asc" \ 29 | && cd /tmp \ 30 | && export GNUPGHOME="$(mktemp -d)" \ 31 | && export GPG_KEYS="8460980B2B79786DE0C7FCC83FD8F43C2BB3C478" \ 32 | && (gpg --batch --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-keys "$GPG_KEYS" || gpg --batch --keyserver hkp://ipv4.pool.sks-keyservers.net:80 --recv-keys "$GPG_KEYS" || gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$GPG_KEYS" || gpg --batch --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys "$GPG_KEYS") \ 33 | && gpg --batch --verify luarocks.tar.gz.asc luarocks.tar.gz \ 34 | && rm -rf "$GNUPGHOME" \ 35 | && mkdir /tmp/luarocks \ 36 | && tar -xf /tmp/luarocks.tar.gz -C /tmp/luarocks --strip-components=1 \ 37 | && cd /tmp/luarocks \ 38 | && ./configure \ 39 | && make \ 40 | && make install \ 41 | && cd / \ 42 | && apt-mark auto '.*' > /dev/null \ 43 | && if [ -n "$saved_apt_mark" ]; then \ 44 | apt-mark manual $saved_apt_mark; \ 45 | fi \ 46 | && dpkg-query --show --showformat '${package}\n' | grep -P '^libreadline[t\d]+$' | xargs apt-mark manual \ 47 | && apt-mark manual \ 48 | ca-certificates \ 49 | curl \ 50 | unzip \ 51 | && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \ 52 | && rm -rf /var/lib/apt/lists/* /var/lib/dpkg/*-old /var/cache/* /var/log/* \ 53 | && rm -rf /tmp/lua /tmp/lua.tar.gz \ 54 | && rm -rf /tmp/luarocks /tmp/luarocks.tar.gz \ 55 | && luarocks --version \ 56 | && lua -v 57 | 58 | CMD ["lua"] 59 | 60 | LABEL org.opencontainers.image.source="https://github.com/GUI/lua-docker" \ 61 | org.opencontainers.image.licenses="MIT" 62 | -------------------------------------------------------------------------------- /lua-5.2/luarocks-rolling/Dockerfile: -------------------------------------------------------------------------------- 1 | # AUTOMATICALLY GENERATED 2 | # DO NOT EDIT THIS FILE DIRECTLY. Edit /Dockerfile.erb and run /update instead. 3 | 4 | FROM ubuntu:questing-20251029 5 | 6 | RUN set -ex \ 7 | && saved_apt_mark="$(apt-mark showmanual)" \ 8 | && apt-get update \ 9 | && apt-get install -y --no-install-recommends \ 10 | ca-certificates \ 11 | curl \ 12 | gcc \ 13 | libc6-dev \ 14 | make \ 15 | libreadline-dev \ 16 | dirmngr \ 17 | gnupg \ 18 | unzip \ 19 | && curl -fsSL -o /tmp/lua.tar.gz "https://www.lua.org/ftp/lua-5.2.4.tar.gz" \ 20 | && cd /tmp \ 21 | && echo "b9e2e4aad6789b3b63a056d442f7b39f0ecfca3ae0f1fc0ae4e9614401b69f4b *lua.tar.gz" | sha256sum -c - \ 22 | && mkdir /tmp/lua \ 23 | && tar -xf /tmp/lua.tar.gz -C /tmp/lua --strip-components=1 \ 24 | && cd /tmp/lua \ 25 | && make linux \ 26 | && make install \ 27 | && curl -fsSL -o /tmp/luarocks.tar.gz "https://luarocks.org/releases/luarocks-3.12.2.tar.gz" \ 28 | && curl -fsSL -o /tmp/luarocks.tar.gz.asc "https://luarocks.org/releases/luarocks-3.12.2.tar.gz.asc" \ 29 | && cd /tmp \ 30 | && export GNUPGHOME="$(mktemp -d)" \ 31 | && export GPG_KEYS="8460980B2B79786DE0C7FCC83FD8F43C2BB3C478" \ 32 | && (gpg --batch --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-keys "$GPG_KEYS" || gpg --batch --keyserver hkp://ipv4.pool.sks-keyservers.net:80 --recv-keys "$GPG_KEYS" || gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$GPG_KEYS" || gpg --batch --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys "$GPG_KEYS") \ 33 | && gpg --batch --verify luarocks.tar.gz.asc luarocks.tar.gz \ 34 | && rm -rf "$GNUPGHOME" \ 35 | && mkdir /tmp/luarocks \ 36 | && tar -xf /tmp/luarocks.tar.gz -C /tmp/luarocks --strip-components=1 \ 37 | && cd /tmp/luarocks \ 38 | && ./configure \ 39 | && make \ 40 | && make install \ 41 | && cd / \ 42 | && apt-mark auto '.*' > /dev/null \ 43 | && if [ -n "$saved_apt_mark" ]; then \ 44 | apt-mark manual $saved_apt_mark; \ 45 | fi \ 46 | && dpkg-query --show --showformat '${package}\n' | grep -P '^libreadline[t\d]+$' | xargs apt-mark manual \ 47 | && apt-mark manual \ 48 | ca-certificates \ 49 | curl \ 50 | unzip \ 51 | && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \ 52 | && rm -rf /var/lib/apt/lists/* /var/lib/dpkg/*-old /var/cache/* /var/log/* \ 53 | && rm -rf /tmp/lua /tmp/lua.tar.gz \ 54 | && rm -rf /tmp/luarocks /tmp/luarocks.tar.gz \ 55 | && luarocks --version \ 56 | && lua -v 57 | 58 | CMD ["lua"] 59 | 60 | LABEL org.opencontainers.image.source="https://github.com/GUI/lua-docker" \ 61 | org.opencontainers.image.licenses="MIT" 62 | -------------------------------------------------------------------------------- /lua-5.2/luarocks-trixie/Dockerfile: -------------------------------------------------------------------------------- 1 | # AUTOMATICALLY GENERATED 2 | # DO NOT EDIT THIS FILE DIRECTLY. Edit /Dockerfile.erb and run /update instead. 3 | 4 | FROM debian:trixie-20251208 5 | 6 | RUN set -ex \ 7 | && saved_apt_mark="$(apt-mark showmanual)" \ 8 | && apt-get update \ 9 | && apt-get install -y --no-install-recommends \ 10 | ca-certificates \ 11 | curl \ 12 | gcc \ 13 | libc6-dev \ 14 | make \ 15 | libreadline-dev \ 16 | dirmngr \ 17 | gnupg \ 18 | unzip \ 19 | && curl -fsSL -o /tmp/lua.tar.gz "https://www.lua.org/ftp/lua-5.2.4.tar.gz" \ 20 | && cd /tmp \ 21 | && echo "b9e2e4aad6789b3b63a056d442f7b39f0ecfca3ae0f1fc0ae4e9614401b69f4b *lua.tar.gz" | sha256sum -c - \ 22 | && mkdir /tmp/lua \ 23 | && tar -xf /tmp/lua.tar.gz -C /tmp/lua --strip-components=1 \ 24 | && cd /tmp/lua \ 25 | && make linux \ 26 | && make install \ 27 | && curl -fsSL -o /tmp/luarocks.tar.gz "https://luarocks.org/releases/luarocks-3.12.2.tar.gz" \ 28 | && curl -fsSL -o /tmp/luarocks.tar.gz.asc "https://luarocks.org/releases/luarocks-3.12.2.tar.gz.asc" \ 29 | && cd /tmp \ 30 | && export GNUPGHOME="$(mktemp -d)" \ 31 | && export GPG_KEYS="8460980B2B79786DE0C7FCC83FD8F43C2BB3C478" \ 32 | && (gpg --batch --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-keys "$GPG_KEYS" || gpg --batch --keyserver hkp://ipv4.pool.sks-keyservers.net:80 --recv-keys "$GPG_KEYS" || gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$GPG_KEYS" || gpg --batch --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys "$GPG_KEYS") \ 33 | && gpg --batch --verify luarocks.tar.gz.asc luarocks.tar.gz \ 34 | && rm -rf "$GNUPGHOME" \ 35 | && mkdir /tmp/luarocks \ 36 | && tar -xf /tmp/luarocks.tar.gz -C /tmp/luarocks --strip-components=1 \ 37 | && cd /tmp/luarocks \ 38 | && ./configure \ 39 | && make \ 40 | && make install \ 41 | && cd / \ 42 | && apt-mark auto '.*' > /dev/null \ 43 | && if [ -n "$saved_apt_mark" ]; then \ 44 | apt-mark manual $saved_apt_mark; \ 45 | fi \ 46 | && dpkg-query --show --showformat '${package}\n' | grep -P '^libreadline[t\d]+$' | xargs apt-mark manual \ 47 | && apt-mark manual \ 48 | ca-certificates \ 49 | curl \ 50 | unzip \ 51 | && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \ 52 | && rm -rf /var/lib/apt/lists/* /var/lib/dpkg/*-old /var/cache/* /var/log/* \ 53 | && rm -rf /tmp/lua /tmp/lua.tar.gz \ 54 | && rm -rf /tmp/luarocks /tmp/luarocks.tar.gz \ 55 | && luarocks --version \ 56 | && lua -v 57 | 58 | CMD ["lua"] 59 | 60 | LABEL org.opencontainers.image.source="https://github.com/GUI/lua-docker" \ 61 | org.opencontainers.image.licenses="MIT" 62 | -------------------------------------------------------------------------------- /lua-5.3/luarocks-plucky/Dockerfile: -------------------------------------------------------------------------------- 1 | # AUTOMATICALLY GENERATED 2 | # DO NOT EDIT THIS FILE DIRECTLY. Edit /Dockerfile.erb and run /update instead. 3 | 4 | FROM ubuntu:plucky-20251001 5 | 6 | RUN set -ex \ 7 | && saved_apt_mark="$(apt-mark showmanual)" \ 8 | && apt-get update \ 9 | && apt-get install -y --no-install-recommends \ 10 | ca-certificates \ 11 | curl \ 12 | gcc \ 13 | libc6-dev \ 14 | make \ 15 | libreadline-dev \ 16 | dirmngr \ 17 | gnupg \ 18 | unzip \ 19 | && curl -fsSL -o /tmp/lua.tar.gz "https://www.lua.org/ftp/lua-5.3.6.tar.gz" \ 20 | && cd /tmp \ 21 | && echo "fc5fd69bb8736323f026672b1b7235da613d7177e72558893a0bdcd320466d60 *lua.tar.gz" | sha256sum -c - \ 22 | && mkdir /tmp/lua \ 23 | && tar -xf /tmp/lua.tar.gz -C /tmp/lua --strip-components=1 \ 24 | && cd /tmp/lua \ 25 | && make linux \ 26 | && make install \ 27 | && curl -fsSL -o /tmp/luarocks.tar.gz "https://luarocks.org/releases/luarocks-3.12.2.tar.gz" \ 28 | && curl -fsSL -o /tmp/luarocks.tar.gz.asc "https://luarocks.org/releases/luarocks-3.12.2.tar.gz.asc" \ 29 | && cd /tmp \ 30 | && export GNUPGHOME="$(mktemp -d)" \ 31 | && export GPG_KEYS="8460980B2B79786DE0C7FCC83FD8F43C2BB3C478" \ 32 | && (gpg --batch --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-keys "$GPG_KEYS" || gpg --batch --keyserver hkp://ipv4.pool.sks-keyservers.net:80 --recv-keys "$GPG_KEYS" || gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$GPG_KEYS" || gpg --batch --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys "$GPG_KEYS") \ 33 | && gpg --batch --verify luarocks.tar.gz.asc luarocks.tar.gz \ 34 | && rm -rf "$GNUPGHOME" \ 35 | && mkdir /tmp/luarocks \ 36 | && tar -xf /tmp/luarocks.tar.gz -C /tmp/luarocks --strip-components=1 \ 37 | && cd /tmp/luarocks \ 38 | && ./configure \ 39 | && make \ 40 | && make install \ 41 | && cd / \ 42 | && apt-mark auto '.*' > /dev/null \ 43 | && if [ -n "$saved_apt_mark" ]; then \ 44 | apt-mark manual $saved_apt_mark; \ 45 | fi \ 46 | && dpkg-query --show --showformat '${package}\n' | grep -P '^libreadline[t\d]+$' | xargs apt-mark manual \ 47 | && apt-mark manual \ 48 | ca-certificates \ 49 | curl \ 50 | unzip \ 51 | && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \ 52 | && rm -rf /var/lib/apt/lists/* /var/lib/dpkg/*-old /var/cache/* /var/log/* \ 53 | && rm -rf /tmp/lua /tmp/lua.tar.gz \ 54 | && rm -rf /tmp/luarocks /tmp/luarocks.tar.gz \ 55 | && luarocks --version \ 56 | && lua -v 57 | 58 | CMD ["lua"] 59 | 60 | LABEL org.opencontainers.image.source="https://github.com/GUI/lua-docker" \ 61 | org.opencontainers.image.licenses="MIT" 62 | -------------------------------------------------------------------------------- /lua-5.3/luarocks-rolling/Dockerfile: -------------------------------------------------------------------------------- 1 | # AUTOMATICALLY GENERATED 2 | # DO NOT EDIT THIS FILE DIRECTLY. Edit /Dockerfile.erb and run /update instead. 3 | 4 | FROM ubuntu:questing-20251029 5 | 6 | RUN set -ex \ 7 | && saved_apt_mark="$(apt-mark showmanual)" \ 8 | && apt-get update \ 9 | && apt-get install -y --no-install-recommends \ 10 | ca-certificates \ 11 | curl \ 12 | gcc \ 13 | libc6-dev \ 14 | make \ 15 | libreadline-dev \ 16 | dirmngr \ 17 | gnupg \ 18 | unzip \ 19 | && curl -fsSL -o /tmp/lua.tar.gz "https://www.lua.org/ftp/lua-5.3.6.tar.gz" \ 20 | && cd /tmp \ 21 | && echo "fc5fd69bb8736323f026672b1b7235da613d7177e72558893a0bdcd320466d60 *lua.tar.gz" | sha256sum -c - \ 22 | && mkdir /tmp/lua \ 23 | && tar -xf /tmp/lua.tar.gz -C /tmp/lua --strip-components=1 \ 24 | && cd /tmp/lua \ 25 | && make linux \ 26 | && make install \ 27 | && curl -fsSL -o /tmp/luarocks.tar.gz "https://luarocks.org/releases/luarocks-3.12.2.tar.gz" \ 28 | && curl -fsSL -o /tmp/luarocks.tar.gz.asc "https://luarocks.org/releases/luarocks-3.12.2.tar.gz.asc" \ 29 | && cd /tmp \ 30 | && export GNUPGHOME="$(mktemp -d)" \ 31 | && export GPG_KEYS="8460980B2B79786DE0C7FCC83FD8F43C2BB3C478" \ 32 | && (gpg --batch --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-keys "$GPG_KEYS" || gpg --batch --keyserver hkp://ipv4.pool.sks-keyservers.net:80 --recv-keys "$GPG_KEYS" || gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$GPG_KEYS" || gpg --batch --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys "$GPG_KEYS") \ 33 | && gpg --batch --verify luarocks.tar.gz.asc luarocks.tar.gz \ 34 | && rm -rf "$GNUPGHOME" \ 35 | && mkdir /tmp/luarocks \ 36 | && tar -xf /tmp/luarocks.tar.gz -C /tmp/luarocks --strip-components=1 \ 37 | && cd /tmp/luarocks \ 38 | && ./configure \ 39 | && make \ 40 | && make install \ 41 | && cd / \ 42 | && apt-mark auto '.*' > /dev/null \ 43 | && if [ -n "$saved_apt_mark" ]; then \ 44 | apt-mark manual $saved_apt_mark; \ 45 | fi \ 46 | && dpkg-query --show --showformat '${package}\n' | grep -P '^libreadline[t\d]+$' | xargs apt-mark manual \ 47 | && apt-mark manual \ 48 | ca-certificates \ 49 | curl \ 50 | unzip \ 51 | && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \ 52 | && rm -rf /var/lib/apt/lists/* /var/lib/dpkg/*-old /var/cache/* /var/log/* \ 53 | && rm -rf /tmp/lua /tmp/lua.tar.gz \ 54 | && rm -rf /tmp/luarocks /tmp/luarocks.tar.gz \ 55 | && luarocks --version \ 56 | && lua -v 57 | 58 | CMD ["lua"] 59 | 60 | LABEL org.opencontainers.image.source="https://github.com/GUI/lua-docker" \ 61 | org.opencontainers.image.licenses="MIT" 62 | -------------------------------------------------------------------------------- /lua-5.3/luarocks-trixie/Dockerfile: -------------------------------------------------------------------------------- 1 | # AUTOMATICALLY GENERATED 2 | # DO NOT EDIT THIS FILE DIRECTLY. Edit /Dockerfile.erb and run /update instead. 3 | 4 | FROM debian:trixie-20251208 5 | 6 | RUN set -ex \ 7 | && saved_apt_mark="$(apt-mark showmanual)" \ 8 | && apt-get update \ 9 | && apt-get install -y --no-install-recommends \ 10 | ca-certificates \ 11 | curl \ 12 | gcc \ 13 | libc6-dev \ 14 | make \ 15 | libreadline-dev \ 16 | dirmngr \ 17 | gnupg \ 18 | unzip \ 19 | && curl -fsSL -o /tmp/lua.tar.gz "https://www.lua.org/ftp/lua-5.3.6.tar.gz" \ 20 | && cd /tmp \ 21 | && echo "fc5fd69bb8736323f026672b1b7235da613d7177e72558893a0bdcd320466d60 *lua.tar.gz" | sha256sum -c - \ 22 | && mkdir /tmp/lua \ 23 | && tar -xf /tmp/lua.tar.gz -C /tmp/lua --strip-components=1 \ 24 | && cd /tmp/lua \ 25 | && make linux \ 26 | && make install \ 27 | && curl -fsSL -o /tmp/luarocks.tar.gz "https://luarocks.org/releases/luarocks-3.12.2.tar.gz" \ 28 | && curl -fsSL -o /tmp/luarocks.tar.gz.asc "https://luarocks.org/releases/luarocks-3.12.2.tar.gz.asc" \ 29 | && cd /tmp \ 30 | && export GNUPGHOME="$(mktemp -d)" \ 31 | && export GPG_KEYS="8460980B2B79786DE0C7FCC83FD8F43C2BB3C478" \ 32 | && (gpg --batch --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-keys "$GPG_KEYS" || gpg --batch --keyserver hkp://ipv4.pool.sks-keyservers.net:80 --recv-keys "$GPG_KEYS" || gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$GPG_KEYS" || gpg --batch --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys "$GPG_KEYS") \ 33 | && gpg --batch --verify luarocks.tar.gz.asc luarocks.tar.gz \ 34 | && rm -rf "$GNUPGHOME" \ 35 | && mkdir /tmp/luarocks \ 36 | && tar -xf /tmp/luarocks.tar.gz -C /tmp/luarocks --strip-components=1 \ 37 | && cd /tmp/luarocks \ 38 | && ./configure \ 39 | && make \ 40 | && make install \ 41 | && cd / \ 42 | && apt-mark auto '.*' > /dev/null \ 43 | && if [ -n "$saved_apt_mark" ]; then \ 44 | apt-mark manual $saved_apt_mark; \ 45 | fi \ 46 | && dpkg-query --show --showformat '${package}\n' | grep -P '^libreadline[t\d]+$' | xargs apt-mark manual \ 47 | && apt-mark manual \ 48 | ca-certificates \ 49 | curl \ 50 | unzip \ 51 | && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \ 52 | && rm -rf /var/lib/apt/lists/* /var/lib/dpkg/*-old /var/cache/* /var/log/* \ 53 | && rm -rf /tmp/lua /tmp/lua.tar.gz \ 54 | && rm -rf /tmp/luarocks /tmp/luarocks.tar.gz \ 55 | && luarocks --version \ 56 | && lua -v 57 | 58 | CMD ["lua"] 59 | 60 | LABEL org.opencontainers.image.source="https://github.com/GUI/lua-docker" \ 61 | org.opencontainers.image.licenses="MIT" 62 | -------------------------------------------------------------------------------- /lua-5.4/luarocks-plucky/Dockerfile: -------------------------------------------------------------------------------- 1 | # AUTOMATICALLY GENERATED 2 | # DO NOT EDIT THIS FILE DIRECTLY. Edit /Dockerfile.erb and run /update instead. 3 | 4 | FROM ubuntu:plucky-20251001 5 | 6 | RUN set -ex \ 7 | && saved_apt_mark="$(apt-mark showmanual)" \ 8 | && apt-get update \ 9 | && apt-get install -y --no-install-recommends \ 10 | ca-certificates \ 11 | curl \ 12 | gcc \ 13 | libc6-dev \ 14 | make \ 15 | libreadline-dev \ 16 | dirmngr \ 17 | gnupg \ 18 | unzip \ 19 | && curl -fsSL -o /tmp/lua.tar.gz "https://www.lua.org/ftp/lua-5.4.8.tar.gz" \ 20 | && cd /tmp \ 21 | && echo "4f18ddae154e793e46eeab727c59ef1c0c0c2b744e7b94219710d76f530629ae *lua.tar.gz" | sha256sum -c - \ 22 | && mkdir /tmp/lua \ 23 | && tar -xf /tmp/lua.tar.gz -C /tmp/lua --strip-components=1 \ 24 | && cd /tmp/lua \ 25 | && make linux \ 26 | && make install \ 27 | && curl -fsSL -o /tmp/luarocks.tar.gz "https://luarocks.org/releases/luarocks-3.12.2.tar.gz" \ 28 | && curl -fsSL -o /tmp/luarocks.tar.gz.asc "https://luarocks.org/releases/luarocks-3.12.2.tar.gz.asc" \ 29 | && cd /tmp \ 30 | && export GNUPGHOME="$(mktemp -d)" \ 31 | && export GPG_KEYS="8460980B2B79786DE0C7FCC83FD8F43C2BB3C478" \ 32 | && (gpg --batch --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-keys "$GPG_KEYS" || gpg --batch --keyserver hkp://ipv4.pool.sks-keyservers.net:80 --recv-keys "$GPG_KEYS" || gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$GPG_KEYS" || gpg --batch --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys "$GPG_KEYS") \ 33 | && gpg --batch --verify luarocks.tar.gz.asc luarocks.tar.gz \ 34 | && rm -rf "$GNUPGHOME" \ 35 | && mkdir /tmp/luarocks \ 36 | && tar -xf /tmp/luarocks.tar.gz -C /tmp/luarocks --strip-components=1 \ 37 | && cd /tmp/luarocks \ 38 | && ./configure \ 39 | && make \ 40 | && make install \ 41 | && cd / \ 42 | && apt-mark auto '.*' > /dev/null \ 43 | && if [ -n "$saved_apt_mark" ]; then \ 44 | apt-mark manual $saved_apt_mark; \ 45 | fi \ 46 | && dpkg-query --show --showformat '${package}\n' | grep -P '^libreadline[t\d]+$' | xargs apt-mark manual \ 47 | && apt-mark manual \ 48 | ca-certificates \ 49 | curl \ 50 | unzip \ 51 | && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \ 52 | && rm -rf /var/lib/apt/lists/* /var/lib/dpkg/*-old /var/cache/* /var/log/* \ 53 | && rm -rf /tmp/lua /tmp/lua.tar.gz \ 54 | && rm -rf /tmp/luarocks /tmp/luarocks.tar.gz \ 55 | && luarocks --version \ 56 | && lua -v 57 | 58 | CMD ["lua"] 59 | 60 | LABEL org.opencontainers.image.source="https://github.com/GUI/lua-docker" \ 61 | org.opencontainers.image.licenses="MIT" 62 | -------------------------------------------------------------------------------- /lua-5.4/luarocks-rolling/Dockerfile: -------------------------------------------------------------------------------- 1 | # AUTOMATICALLY GENERATED 2 | # DO NOT EDIT THIS FILE DIRECTLY. Edit /Dockerfile.erb and run /update instead. 3 | 4 | FROM ubuntu:questing-20251029 5 | 6 | RUN set -ex \ 7 | && saved_apt_mark="$(apt-mark showmanual)" \ 8 | && apt-get update \ 9 | && apt-get install -y --no-install-recommends \ 10 | ca-certificates \ 11 | curl \ 12 | gcc \ 13 | libc6-dev \ 14 | make \ 15 | libreadline-dev \ 16 | dirmngr \ 17 | gnupg \ 18 | unzip \ 19 | && curl -fsSL -o /tmp/lua.tar.gz "https://www.lua.org/ftp/lua-5.4.8.tar.gz" \ 20 | && cd /tmp \ 21 | && echo "4f18ddae154e793e46eeab727c59ef1c0c0c2b744e7b94219710d76f530629ae *lua.tar.gz" | sha256sum -c - \ 22 | && mkdir /tmp/lua \ 23 | && tar -xf /tmp/lua.tar.gz -C /tmp/lua --strip-components=1 \ 24 | && cd /tmp/lua \ 25 | && make linux \ 26 | && make install \ 27 | && curl -fsSL -o /tmp/luarocks.tar.gz "https://luarocks.org/releases/luarocks-3.12.2.tar.gz" \ 28 | && curl -fsSL -o /tmp/luarocks.tar.gz.asc "https://luarocks.org/releases/luarocks-3.12.2.tar.gz.asc" \ 29 | && cd /tmp \ 30 | && export GNUPGHOME="$(mktemp -d)" \ 31 | && export GPG_KEYS="8460980B2B79786DE0C7FCC83FD8F43C2BB3C478" \ 32 | && (gpg --batch --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-keys "$GPG_KEYS" || gpg --batch --keyserver hkp://ipv4.pool.sks-keyservers.net:80 --recv-keys "$GPG_KEYS" || gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$GPG_KEYS" || gpg --batch --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys "$GPG_KEYS") \ 33 | && gpg --batch --verify luarocks.tar.gz.asc luarocks.tar.gz \ 34 | && rm -rf "$GNUPGHOME" \ 35 | && mkdir /tmp/luarocks \ 36 | && tar -xf /tmp/luarocks.tar.gz -C /tmp/luarocks --strip-components=1 \ 37 | && cd /tmp/luarocks \ 38 | && ./configure \ 39 | && make \ 40 | && make install \ 41 | && cd / \ 42 | && apt-mark auto '.*' > /dev/null \ 43 | && if [ -n "$saved_apt_mark" ]; then \ 44 | apt-mark manual $saved_apt_mark; \ 45 | fi \ 46 | && dpkg-query --show --showformat '${package}\n' | grep -P '^libreadline[t\d]+$' | xargs apt-mark manual \ 47 | && apt-mark manual \ 48 | ca-certificates \ 49 | curl \ 50 | unzip \ 51 | && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \ 52 | && rm -rf /var/lib/apt/lists/* /var/lib/dpkg/*-old /var/cache/* /var/log/* \ 53 | && rm -rf /tmp/lua /tmp/lua.tar.gz \ 54 | && rm -rf /tmp/luarocks /tmp/luarocks.tar.gz \ 55 | && luarocks --version \ 56 | && lua -v 57 | 58 | CMD ["lua"] 59 | 60 | LABEL org.opencontainers.image.source="https://github.com/GUI/lua-docker" \ 61 | org.opencontainers.image.licenses="MIT" 62 | -------------------------------------------------------------------------------- /lua-5.4/luarocks-trixie/Dockerfile: -------------------------------------------------------------------------------- 1 | # AUTOMATICALLY GENERATED 2 | # DO NOT EDIT THIS FILE DIRECTLY. Edit /Dockerfile.erb and run /update instead. 3 | 4 | FROM debian:trixie-20251208 5 | 6 | RUN set -ex \ 7 | && saved_apt_mark="$(apt-mark showmanual)" \ 8 | && apt-get update \ 9 | && apt-get install -y --no-install-recommends \ 10 | ca-certificates \ 11 | curl \ 12 | gcc \ 13 | libc6-dev \ 14 | make \ 15 | libreadline-dev \ 16 | dirmngr \ 17 | gnupg \ 18 | unzip \ 19 | && curl -fsSL -o /tmp/lua.tar.gz "https://www.lua.org/ftp/lua-5.4.8.tar.gz" \ 20 | && cd /tmp \ 21 | && echo "4f18ddae154e793e46eeab727c59ef1c0c0c2b744e7b94219710d76f530629ae *lua.tar.gz" | sha256sum -c - \ 22 | && mkdir /tmp/lua \ 23 | && tar -xf /tmp/lua.tar.gz -C /tmp/lua --strip-components=1 \ 24 | && cd /tmp/lua \ 25 | && make linux \ 26 | && make install \ 27 | && curl -fsSL -o /tmp/luarocks.tar.gz "https://luarocks.org/releases/luarocks-3.12.2.tar.gz" \ 28 | && curl -fsSL -o /tmp/luarocks.tar.gz.asc "https://luarocks.org/releases/luarocks-3.12.2.tar.gz.asc" \ 29 | && cd /tmp \ 30 | && export GNUPGHOME="$(mktemp -d)" \ 31 | && export GPG_KEYS="8460980B2B79786DE0C7FCC83FD8F43C2BB3C478" \ 32 | && (gpg --batch --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-keys "$GPG_KEYS" || gpg --batch --keyserver hkp://ipv4.pool.sks-keyservers.net:80 --recv-keys "$GPG_KEYS" || gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$GPG_KEYS" || gpg --batch --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys "$GPG_KEYS") \ 33 | && gpg --batch --verify luarocks.tar.gz.asc luarocks.tar.gz \ 34 | && rm -rf "$GNUPGHOME" \ 35 | && mkdir /tmp/luarocks \ 36 | && tar -xf /tmp/luarocks.tar.gz -C /tmp/luarocks --strip-components=1 \ 37 | && cd /tmp/luarocks \ 38 | && ./configure \ 39 | && make \ 40 | && make install \ 41 | && cd / \ 42 | && apt-mark auto '.*' > /dev/null \ 43 | && if [ -n "$saved_apt_mark" ]; then \ 44 | apt-mark manual $saved_apt_mark; \ 45 | fi \ 46 | && dpkg-query --show --showformat '${package}\n' | grep -P '^libreadline[t\d]+$' | xargs apt-mark manual \ 47 | && apt-mark manual \ 48 | ca-certificates \ 49 | curl \ 50 | unzip \ 51 | && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \ 52 | && rm -rf /var/lib/apt/lists/* /var/lib/dpkg/*-old /var/cache/* /var/log/* \ 53 | && rm -rf /tmp/lua /tmp/lua.tar.gz \ 54 | && rm -rf /tmp/luarocks /tmp/luarocks.tar.gz \ 55 | && luarocks --version \ 56 | && lua -v 57 | 58 | CMD ["lua"] 59 | 60 | LABEL org.opencontainers.image.source="https://github.com/GUI/lua-docker" \ 61 | org.opencontainers.image.licenses="MIT" 62 | -------------------------------------------------------------------------------- /lua-5.2/luarocks-bookworm/Dockerfile: -------------------------------------------------------------------------------- 1 | # AUTOMATICALLY GENERATED 2 | # DO NOT EDIT THIS FILE DIRECTLY. Edit /Dockerfile.erb and run /update instead. 3 | 4 | FROM debian:bookworm-20251208 5 | 6 | RUN set -ex \ 7 | && saved_apt_mark="$(apt-mark showmanual)" \ 8 | && apt-get update \ 9 | && apt-get install -y --no-install-recommends \ 10 | ca-certificates \ 11 | curl \ 12 | gcc \ 13 | libc6-dev \ 14 | make \ 15 | libreadline-dev \ 16 | dirmngr \ 17 | gnupg \ 18 | unzip \ 19 | && curl -fsSL -o /tmp/lua.tar.gz "https://www.lua.org/ftp/lua-5.2.4.tar.gz" \ 20 | && cd /tmp \ 21 | && echo "b9e2e4aad6789b3b63a056d442f7b39f0ecfca3ae0f1fc0ae4e9614401b69f4b *lua.tar.gz" | sha256sum -c - \ 22 | && mkdir /tmp/lua \ 23 | && tar -xf /tmp/lua.tar.gz -C /tmp/lua --strip-components=1 \ 24 | && cd /tmp/lua \ 25 | && make linux \ 26 | && make install \ 27 | && curl -fsSL -o /tmp/luarocks.tar.gz "https://luarocks.org/releases/luarocks-3.12.2.tar.gz" \ 28 | && curl -fsSL -o /tmp/luarocks.tar.gz.asc "https://luarocks.org/releases/luarocks-3.12.2.tar.gz.asc" \ 29 | && cd /tmp \ 30 | && export GNUPGHOME="$(mktemp -d)" \ 31 | && export GPG_KEYS="8460980B2B79786DE0C7FCC83FD8F43C2BB3C478" \ 32 | && (gpg --batch --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-keys "$GPG_KEYS" || gpg --batch --keyserver hkp://ipv4.pool.sks-keyservers.net:80 --recv-keys "$GPG_KEYS" || gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$GPG_KEYS" || gpg --batch --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys "$GPG_KEYS") \ 33 | && gpg --batch --verify luarocks.tar.gz.asc luarocks.tar.gz \ 34 | && rm -rf "$GNUPGHOME" \ 35 | && mkdir /tmp/luarocks \ 36 | && tar -xf /tmp/luarocks.tar.gz -C /tmp/luarocks --strip-components=1 \ 37 | && cd /tmp/luarocks \ 38 | && ./configure \ 39 | && make \ 40 | && make install \ 41 | && cd / \ 42 | && apt-mark auto '.*' > /dev/null \ 43 | && if [ -n "$saved_apt_mark" ]; then \ 44 | apt-mark manual $saved_apt_mark; \ 45 | fi \ 46 | && dpkg-query --show --showformat '${package}\n' | grep -P '^libreadline[t\d]+$' | xargs apt-mark manual \ 47 | && apt-mark manual \ 48 | ca-certificates \ 49 | curl \ 50 | unzip \ 51 | && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \ 52 | && rm -rf /var/lib/apt/lists/* /var/lib/dpkg/*-old /var/cache/* /var/log/* \ 53 | && rm -rf /tmp/lua /tmp/lua.tar.gz \ 54 | && rm -rf /tmp/luarocks /tmp/luarocks.tar.gz \ 55 | && luarocks --version \ 56 | && lua -v 57 | 58 | CMD ["lua"] 59 | 60 | LABEL org.opencontainers.image.source="https://github.com/GUI/lua-docker" \ 61 | org.opencontainers.image.licenses="MIT" 62 | -------------------------------------------------------------------------------- /lua-5.3/luarocks-bookworm/Dockerfile: -------------------------------------------------------------------------------- 1 | # AUTOMATICALLY GENERATED 2 | # DO NOT EDIT THIS FILE DIRECTLY. Edit /Dockerfile.erb and run /update instead. 3 | 4 | FROM debian:bookworm-20251208 5 | 6 | RUN set -ex \ 7 | && saved_apt_mark="$(apt-mark showmanual)" \ 8 | && apt-get update \ 9 | && apt-get install -y --no-install-recommends \ 10 | ca-certificates \ 11 | curl \ 12 | gcc \ 13 | libc6-dev \ 14 | make \ 15 | libreadline-dev \ 16 | dirmngr \ 17 | gnupg \ 18 | unzip \ 19 | && curl -fsSL -o /tmp/lua.tar.gz "https://www.lua.org/ftp/lua-5.3.6.tar.gz" \ 20 | && cd /tmp \ 21 | && echo "fc5fd69bb8736323f026672b1b7235da613d7177e72558893a0bdcd320466d60 *lua.tar.gz" | sha256sum -c - \ 22 | && mkdir /tmp/lua \ 23 | && tar -xf /tmp/lua.tar.gz -C /tmp/lua --strip-components=1 \ 24 | && cd /tmp/lua \ 25 | && make linux \ 26 | && make install \ 27 | && curl -fsSL -o /tmp/luarocks.tar.gz "https://luarocks.org/releases/luarocks-3.12.2.tar.gz" \ 28 | && curl -fsSL -o /tmp/luarocks.tar.gz.asc "https://luarocks.org/releases/luarocks-3.12.2.tar.gz.asc" \ 29 | && cd /tmp \ 30 | && export GNUPGHOME="$(mktemp -d)" \ 31 | && export GPG_KEYS="8460980B2B79786DE0C7FCC83FD8F43C2BB3C478" \ 32 | && (gpg --batch --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-keys "$GPG_KEYS" || gpg --batch --keyserver hkp://ipv4.pool.sks-keyservers.net:80 --recv-keys "$GPG_KEYS" || gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$GPG_KEYS" || gpg --batch --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys "$GPG_KEYS") \ 33 | && gpg --batch --verify luarocks.tar.gz.asc luarocks.tar.gz \ 34 | && rm -rf "$GNUPGHOME" \ 35 | && mkdir /tmp/luarocks \ 36 | && tar -xf /tmp/luarocks.tar.gz -C /tmp/luarocks --strip-components=1 \ 37 | && cd /tmp/luarocks \ 38 | && ./configure \ 39 | && make \ 40 | && make install \ 41 | && cd / \ 42 | && apt-mark auto '.*' > /dev/null \ 43 | && if [ -n "$saved_apt_mark" ]; then \ 44 | apt-mark manual $saved_apt_mark; \ 45 | fi \ 46 | && dpkg-query --show --showformat '${package}\n' | grep -P '^libreadline[t\d]+$' | xargs apt-mark manual \ 47 | && apt-mark manual \ 48 | ca-certificates \ 49 | curl \ 50 | unzip \ 51 | && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \ 52 | && rm -rf /var/lib/apt/lists/* /var/lib/dpkg/*-old /var/cache/* /var/log/* \ 53 | && rm -rf /tmp/lua /tmp/lua.tar.gz \ 54 | && rm -rf /tmp/luarocks /tmp/luarocks.tar.gz \ 55 | && luarocks --version \ 56 | && lua -v 57 | 58 | CMD ["lua"] 59 | 60 | LABEL org.opencontainers.image.source="https://github.com/GUI/lua-docker" \ 61 | org.opencontainers.image.licenses="MIT" 62 | -------------------------------------------------------------------------------- /lua-5.4/luarocks-bookworm/Dockerfile: -------------------------------------------------------------------------------- 1 | # AUTOMATICALLY GENERATED 2 | # DO NOT EDIT THIS FILE DIRECTLY. Edit /Dockerfile.erb and run /update instead. 3 | 4 | FROM debian:bookworm-20251208 5 | 6 | RUN set -ex \ 7 | && saved_apt_mark="$(apt-mark showmanual)" \ 8 | && apt-get update \ 9 | && apt-get install -y --no-install-recommends \ 10 | ca-certificates \ 11 | curl \ 12 | gcc \ 13 | libc6-dev \ 14 | make \ 15 | libreadline-dev \ 16 | dirmngr \ 17 | gnupg \ 18 | unzip \ 19 | && curl -fsSL -o /tmp/lua.tar.gz "https://www.lua.org/ftp/lua-5.4.8.tar.gz" \ 20 | && cd /tmp \ 21 | && echo "4f18ddae154e793e46eeab727c59ef1c0c0c2b744e7b94219710d76f530629ae *lua.tar.gz" | sha256sum -c - \ 22 | && mkdir /tmp/lua \ 23 | && tar -xf /tmp/lua.tar.gz -C /tmp/lua --strip-components=1 \ 24 | && cd /tmp/lua \ 25 | && make linux \ 26 | && make install \ 27 | && curl -fsSL -o /tmp/luarocks.tar.gz "https://luarocks.org/releases/luarocks-3.12.2.tar.gz" \ 28 | && curl -fsSL -o /tmp/luarocks.tar.gz.asc "https://luarocks.org/releases/luarocks-3.12.2.tar.gz.asc" \ 29 | && cd /tmp \ 30 | && export GNUPGHOME="$(mktemp -d)" \ 31 | && export GPG_KEYS="8460980B2B79786DE0C7FCC83FD8F43C2BB3C478" \ 32 | && (gpg --batch --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-keys "$GPG_KEYS" || gpg --batch --keyserver hkp://ipv4.pool.sks-keyservers.net:80 --recv-keys "$GPG_KEYS" || gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$GPG_KEYS" || gpg --batch --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys "$GPG_KEYS") \ 33 | && gpg --batch --verify luarocks.tar.gz.asc luarocks.tar.gz \ 34 | && rm -rf "$GNUPGHOME" \ 35 | && mkdir /tmp/luarocks \ 36 | && tar -xf /tmp/luarocks.tar.gz -C /tmp/luarocks --strip-components=1 \ 37 | && cd /tmp/luarocks \ 38 | && ./configure \ 39 | && make \ 40 | && make install \ 41 | && cd / \ 42 | && apt-mark auto '.*' > /dev/null \ 43 | && if [ -n "$saved_apt_mark" ]; then \ 44 | apt-mark manual $saved_apt_mark; \ 45 | fi \ 46 | && dpkg-query --show --showformat '${package}\n' | grep -P '^libreadline[t\d]+$' | xargs apt-mark manual \ 47 | && apt-mark manual \ 48 | ca-certificates \ 49 | curl \ 50 | unzip \ 51 | && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \ 52 | && rm -rf /var/lib/apt/lists/* /var/lib/dpkg/*-old /var/cache/* /var/log/* \ 53 | && rm -rf /tmp/lua /tmp/lua.tar.gz \ 54 | && rm -rf /tmp/luarocks /tmp/luarocks.tar.gz \ 55 | && luarocks --version \ 56 | && lua -v 57 | 58 | CMD ["lua"] 59 | 60 | LABEL org.opencontainers.image.source="https://github.com/GUI/lua-docker" \ 61 | org.opencontainers.image.licenses="MIT" 62 | -------------------------------------------------------------------------------- /README.md.erb: -------------------------------------------------------------------------------- 1 | # lua-docker 2 | 3 | Minimal, automated, and up-to-date Docker images for different Lua and LuaJIT versions. 4 | 5 | Provides variants for: 6 | 7 | - Debian, Alpine, and Ubuntu base images 8 | - With LuaRocks 9 | - LuaJIT 10 | - LuaJIT built with Lua 5.2 compatibility mode 11 | 12 | This repo provides the source for both Lua and LuaJIT images. The different images can be found at: 13 | 14 | - [`nickblah/lua`](https://hub.docker.com/r/nickblah/lua/): Lua images. 15 | - [`nickblah/luajit`](https://hub.docker.com/r/nickblah/luajit/): LuaJIT images. 16 | 17 | New versions of Lua, LuaJIT, and LuaRocks should automatically be detected and trigger new docker images to built, tagged, and pushed by a daily [GitHub Actions workflow](https://github.com/GUI/lua-docker/blob/main/.github/workflows/main.yml). 18 | 19 | ## Supported Tags and Respective Dockerfile Links 20 | 21 | <% tags.each do |lang, variant_versions| -%> 22 | ### [`nickblah/<%= lang %>`](https://hub.docker.com/r/nickblah/<%= lang %>/) 23 | <% variant_versions.each do |data| -%> 24 | - <%= data.fetch(:variant_tags).map { |t| "`#{t}`" }.join(", ") %>: [<%= data.fetch(:filename) %>](https://github.com/GUI/lua-docker/blob/main/<%= data.fetch(:filename) %>) 25 | <% end -%> 26 | <% end -%> 27 | 28 | ## Image Variants 29 | 30 | ### `nickblah/lua:` 31 | The default Lua image. Provides Lua. Uses Debian Linux for base image. 32 | 33 | ### `nickblah/lua:-alpine` 34 | Provides Lua. Uses Alpine Linux for base image. 35 | 36 | ### `nickblah/lua:-luarocks` 37 | Provides Lua and LuaRocks. Uses Debian Linux for base image. 38 | 39 | ### `nickblah/lua:-luarocks-alpine` 40 | Provides Lua and LuaRocks. Uses Alpine Linux for base image. 41 | 42 | ### `nickblah/luajit:` 43 | The default LuaJIT image. Provides LuaJIT. Uses Debian Linux for base image. 44 | 45 | ### `nickblah/luajit:-alpine` 46 | Provides LuaJIT. Uses Alpine Linux for base image. 47 | 48 | ### `nickblah/luajit:-luarocks` 49 | Provides LuaJIT and LuaRocks. Uses Debian Linux for base image. 50 | 51 | ### `nickblah/luajit:-luarocks-alpine` 52 | Provides LuaJIT and LuaRocks. Uses Alpine Linux for base image. 53 | 54 | ### `nickblah/luajit:-lua52compat` 55 | Provides LuaJIT. LuaJIT compiled with `LUAJIT_ENABLE_LUA52COMPAT`. Uses Debian Linux for base image. 56 | 57 | ### `nickblah/luajit:-lua52compat-alpine` 58 | Provides LuaJIT. LuaJIT compiled with `LUAJIT_ENABLE_LUA52COMPAT`. Uses Alpine Linux for base image. 59 | 60 | ### `nickblah/luajit:-lua52compat-luarocks` 61 | Provides LuaJIT and LuaRocks. LuaJIT compiled with `LUAJIT_ENABLE_LUA52COMPAT`. Uses Debian Linux for base image. 62 | 63 | ### `nickblah/luajit:-lua52compat-luarocks-alpine` 64 | Provides LuaJIT and LuaRocks. LuaJIT compiled with `LUAJIT_ENABLE_LUA52COMPAT`. Uses Alpine Linux for base image. 65 | 66 | ## Installing C Libraries 67 | 68 | These base images are minimal, so they only contain the necessary dependencies for running Lua and installing pure-Lua LuaRocks modules. If you need to install LuaRocks modules that include C extensions or need compiling/building, then you'll first need to install the necessary dependencies (for example, make, gcc, etc). The exact dependencies may vary depending on the module's requirements, but to install basic build dependencies, the following installation commands can be used: 69 | 70 | - For Debian based images: 71 | ```sh 72 | apt-get update && apt-get install -y build-essential 73 | ``` 74 | - For Alpine based images: 75 | ```sh 76 | apk add --no-cache build-base 77 | ``` 78 | -------------------------------------------------------------------------------- /Dockerfile.erb: -------------------------------------------------------------------------------- 1 | # AUTOMATICALLY GENERATED 2 | # DO NOT EDIT THIS FILE DIRECTLY. Edit /Dockerfile.erb and run /update instead. 3 | 4 | FROM <%= distro %>:<%= distro_tag %> 5 | 6 | RUN set -ex \ 7 | <% if distro == "debian" || distro == "ubuntu" -%> 8 | && saved_apt_mark="$(apt-mark showmanual)" \ 9 | && apt-get update \ 10 | && apt-get install -y --no-install-recommends \ 11 | ca-certificates \ 12 | curl \ 13 | gcc \ 14 | libc6-dev \ 15 | make \ 16 | <% if lang == "lua" -%> 17 | libreadline-dev \ 18 | <% if version_minor == "5.1" -%> 19 | libncurses-dev \ 20 | <% end -%> 21 | <% end -%> 22 | <% if variant.include?("luarocks") -%> 23 | dirmngr \ 24 | gnupg \ 25 | unzip \ 26 | <% end -%> 27 | <% elsif distro == "alpine" -%> 28 | && apk add --no-cache --virtual .lua-builddeps \ 29 | ca-certificates \ 30 | curl \ 31 | gcc \ 32 | libc-dev \ 33 | make \ 34 | <% if lang == "lua" -%> 35 | readline-dev \ 36 | <% if version_minor == "5.1" -%> 37 | ncurses-dev \ 38 | <% end -%> 39 | <% end -%> 40 | <% if variant.include?("luarocks") -%> 41 | coreutils \ 42 | gnupg \ 43 | unzip \ 44 | # rundeps 45 | wget \ 46 | <% end -%> 47 | <% end -%> 48 | && curl -fsSL -o /tmp/lua.tar.gz "<%= archive_url %>" \ 49 | && cd /tmp \ 50 | <% if archive_sha1 -%> 51 | && echo "<%= archive_sha1 %> *lua.tar.gz" | sha1sum -c - \ 52 | <% elsif archive_sha256 -%> 53 | && echo "<%= archive_sha256 %> *lua.tar.gz" | sha256sum -c - \ 54 | <% end -%> 55 | && mkdir /tmp/lua \ 56 | && tar -xf /tmp/lua.tar.gz -C /tmp/lua --strip-components=1 \ 57 | && cd /tmp/lua \ 58 | <% if lang == "luajit" && variant.include?("lua52compat") -%> 59 | && make CFLAGS="-DLUAJIT_ENABLE_LUA52COMPAT" \ 60 | <% elsif lang == "luajit" || version_minor == "5.0" -%> 61 | && make \ 62 | <% else -%> 63 | && make linux \ 64 | <% end -%> 65 | && make install \ 66 | <% if lang == "luajit" && version.prerelease? -%> 67 | && ln -s /usr/local/bin/luajit-<%= version_full %> /usr/local/bin/luajit \ 68 | <% end -%> 69 | <% if variant.include?("luarocks") -%> 70 | && curl -fsSL -o /tmp/luarocks.tar.gz "https://luarocks.org/releases/luarocks-<%= luarocks_version %>.tar.gz" \ 71 | && curl -fsSL -o /tmp/luarocks.tar.gz.asc "https://luarocks.org/releases/luarocks-<%= luarocks_version %>.tar.gz.asc" \ 72 | && cd /tmp \ 73 | && export GNUPGHOME="$(mktemp -d)" \ 74 | && export GPG_KEYS="8460980B2B79786DE0C7FCC83FD8F43C2BB3C478" \ 75 | && (gpg --batch --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-keys "$GPG_KEYS" || gpg --batch --keyserver hkp://ipv4.pool.sks-keyservers.net:80 --recv-keys "$GPG_KEYS" || gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$GPG_KEYS" || gpg --batch --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys "$GPG_KEYS") \ 76 | && gpg --batch --verify luarocks.tar.gz.asc luarocks.tar.gz \ 77 | && rm -rf "$GNUPGHOME" \ 78 | && mkdir /tmp/luarocks \ 79 | && tar -xf /tmp/luarocks.tar.gz -C /tmp/luarocks --strip-components=1 \ 80 | && cd /tmp/luarocks \ 81 | && ./configure \ 82 | && make \ 83 | && make install \ 84 | <% end -%> 85 | && cd / \ 86 | <% if distro == "debian" || distro == "ubuntu" -%> 87 | && apt-mark auto '.*' > /dev/null \ 88 | && if [ -n "$saved_apt_mark" ]; then \ 89 | apt-mark manual $saved_apt_mark; \ 90 | fi \ 91 | <% if lang == "lua" -%> 92 | && dpkg-query --show --showformat '${package}\n' | grep -P '^libreadline[t\d]+$' | xargs apt-mark manual \ 93 | <% if version_minor == "5.1" -%> 94 | && dpkg-query --show --showformat '${package}\n' | grep -P '^libncurses[t\d]+$' | xargs apt-mark manual \ 95 | <% end -%> 96 | <% end -%> 97 | <% if variant.include?("luarocks") -%> 98 | && apt-mark manual \ 99 | ca-certificates \ 100 | curl \ 101 | unzip \ 102 | <% end -%> 103 | && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \ 104 | && rm -rf /var/lib/apt/lists/* /var/lib/dpkg/*-old /var/cache/* /var/log/* \ 105 | <% elsif distro == "alpine" -%> 106 | && apk add --no-network --no-cache --virtual .lua-rundeps \ 107 | <% if lang == "lua" -%> 108 | readline \ 109 | <% if version_minor == "5.1" -%> 110 | ncurses-libs \ 111 | <% end -%> 112 | <% end -%> 113 | <% if lang == "luajit" -%> 114 | libgcc \ 115 | <% end -%> 116 | <% if variant.include?("luarocks") -%> 117 | ca-certificates \ 118 | coreutils \ 119 | wget \ 120 | unzip \ 121 | <% end -%> 122 | && apk del --no-network .lua-builddeps \ 123 | <% end -%> 124 | && rm -rf /tmp/lua /tmp/lua.tar.gz \ 125 | <% if variant.include?("luarocks") -%> 126 | && rm -rf /tmp/luarocks /tmp/luarocks.tar.gz \ 127 | && luarocks --version \ 128 | <% end -%> 129 | && <%= lang %> -v 130 | 131 | CMD ["<%= lang %>"] 132 | 133 | LABEL org.opencontainers.image.source="https://github.com/GUI/lua-docker" \ 134 | org.opencontainers.image.licenses="MIT" 135 | -------------------------------------------------------------------------------- /README.lua.md: -------------------------------------------------------------------------------- 1 | # lua-docker 2 | 3 | Minimal, automated, and up-to-date Docker images for different Lua versions. 4 | 5 | Provides variants for: 6 | 7 | - Debian, Alpine, Ubuntu, and CentOS base images 8 | - With LuaRocks 9 | 10 | New versions of Lua and LuaRocks should automatically be detected and trigger new docker images to built, tagged, and pushed by a daily [GitHub Actions workflow](https://github.com/GUI/lua-docker/blob/main/.github/workflows/main.yml). 11 | 12 | ## Supported Tags and Respective Dockerfile Links 13 | 14 | - `5`, `5-debian`, `5-trixie`, `5.4`, `5.4-debian`, `5.4-trixie`, `5.4.8`, `5.4.8-debian`, `5.4.8-trixie`, `debian`, `latest`: [lua-5.4/trixie/Dockerfile](https://github.com/GUI/lua-docker/blob/main/lua-5.4/trixie/Dockerfile) 15 | - `5-bookworm`, `5.4-bookworm`, `5.4.8-bookworm`: [lua-5.4/bookworm/Dockerfile](https://github.com/GUI/lua-docker/blob/main/lua-5.4/bookworm/Dockerfile) 16 | - `5-luarocks`, `5-luarocks-debian`, `5-luarocks-trixie`, `5.4-luarocks`, `5.4-luarocks-debian`, `5.4-luarocks-trixie`, `5.4.8-luarocks`, `5.4.8-luarocks-debian`, `5.4.8-luarocks-trixie`, `luarocks`, `luarocks-debian`: [lua-5.4/luarocks-trixie/Dockerfile](https://github.com/GUI/lua-docker/blob/main/lua-5.4/luarocks-trixie/Dockerfile) 17 | - `5-luarocks-bookworm`, `5.4-luarocks-bookworm`, `5.4.8-luarocks-bookworm`: [lua-5.4/luarocks-bookworm/Dockerfile](https://github.com/GUI/lua-docker/blob/main/lua-5.4/luarocks-bookworm/Dockerfile) 18 | - `5-alpine`, `5-alpine3`, `5-alpine3.23`, `5.4-alpine`, `5.4-alpine3.23`, `5.4.8-alpine`, `5.4.8-alpine3`, `5.4.8-alpine3.23`, `alpine`: [lua-5.4/alpine3.23/Dockerfile](https://github.com/GUI/lua-docker/blob/main/lua-5.4/alpine3.23/Dockerfile) 19 | - `5-alpine3.22`, `5.4-alpine3.22`, `5.4.8-alpine3.22`: [lua-5.4/alpine3.22/Dockerfile](https://github.com/GUI/lua-docker/blob/main/lua-5.4/alpine3.22/Dockerfile) 20 | - `5-luarocks-alpine`, `5-luarocks-alpine3`, `5-luarocks-alpine3.23`, `5.4-luarocks-alpine`, `5.4-luarocks-alpine3.23`, `5.4.8-luarocks-alpine`, `5.4.8-luarocks-alpine3`, `5.4.8-luarocks-alpine3.23`, `luarocks-alpine`: [lua-5.4/luarocks-alpine3.23/Dockerfile](https://github.com/GUI/lua-docker/blob/main/lua-5.4/luarocks-alpine3.23/Dockerfile) 21 | - `5-luarocks-alpine3.22`, `5.4-luarocks-alpine3.22`, `5.4.8-luarocks-alpine3.22`: [lua-5.4/luarocks-alpine3.22/Dockerfile](https://github.com/GUI/lua-docker/blob/main/lua-5.4/luarocks-alpine3.22/Dockerfile) 22 | - `5-rolling`, `5.4-rolling`, `5.4.8-rolling`: [lua-5.4/rolling/Dockerfile](https://github.com/GUI/lua-docker/blob/main/lua-5.4/rolling/Dockerfile) 23 | - `5-plucky`, `5.4-plucky`, `5.4.8-plucky`: [lua-5.4/plucky/Dockerfile](https://github.com/GUI/lua-docker/blob/main/lua-5.4/plucky/Dockerfile) 24 | - `5-luarocks-rolling`, `5.4-luarocks-rolling`, `5.4.8-luarocks-rolling`: [lua-5.4/luarocks-rolling/Dockerfile](https://github.com/GUI/lua-docker/blob/main/lua-5.4/luarocks-rolling/Dockerfile) 25 | - `5-luarocks-plucky`, `5.4-luarocks-plucky`, `5.4.8-luarocks-plucky`: [lua-5.4/luarocks-plucky/Dockerfile](https://github.com/GUI/lua-docker/blob/main/lua-5.4/luarocks-plucky/Dockerfile) 26 | - `5.3`, `5.3-debian`, `5.3-trixie`, `5.3.6`, `5.3.6-debian`, `5.3.6-trixie`: [lua-5.3/trixie/Dockerfile](https://github.com/GUI/lua-docker/blob/main/lua-5.3/trixie/Dockerfile) 27 | - `5.3-bookworm`, `5.3.6-bookworm`: [lua-5.3/bookworm/Dockerfile](https://github.com/GUI/lua-docker/blob/main/lua-5.3/bookworm/Dockerfile) 28 | - `5.3-luarocks`, `5.3-luarocks-debian`, `5.3-luarocks-trixie`, `5.3.6-luarocks`, `5.3.6-luarocks-debian`, `5.3.6-luarocks-trixie`: [lua-5.3/luarocks-trixie/Dockerfile](https://github.com/GUI/lua-docker/blob/main/lua-5.3/luarocks-trixie/Dockerfile) 29 | - `5.3-luarocks-bookworm`, `5.3.6-luarocks-bookworm`: [lua-5.3/luarocks-bookworm/Dockerfile](https://github.com/GUI/lua-docker/blob/main/lua-5.3/luarocks-bookworm/Dockerfile) 30 | - `5-alpine3`, `5.3-alpine`, `5.3-alpine3.23`, `5.3.6-alpine`, `5.3.6-alpine3`, `5.3.6-alpine3.23`: [lua-5.3/alpine3.23/Dockerfile](https://github.com/GUI/lua-docker/blob/main/lua-5.3/alpine3.23/Dockerfile) 31 | - `5.3-alpine3.22`, `5.3.6-alpine3.22`: [lua-5.3/alpine3.22/Dockerfile](https://github.com/GUI/lua-docker/blob/main/lua-5.3/alpine3.22/Dockerfile) 32 | - `5-luarocks-alpine3`, `5.3-luarocks-alpine`, `5.3-luarocks-alpine3.23`, `5.3.6-luarocks-alpine`, `5.3.6-luarocks-alpine3`, `5.3.6-luarocks-alpine3.23`: [lua-5.3/luarocks-alpine3.23/Dockerfile](https://github.com/GUI/lua-docker/blob/main/lua-5.3/luarocks-alpine3.23/Dockerfile) 33 | - `5.3-luarocks-alpine3.22`, `5.3.6-luarocks-alpine3.22`: [lua-5.3/luarocks-alpine3.22/Dockerfile](https://github.com/GUI/lua-docker/blob/main/lua-5.3/luarocks-alpine3.22/Dockerfile) 34 | - `5.3-rolling`, `5.3.6-rolling`: [lua-5.3/rolling/Dockerfile](https://github.com/GUI/lua-docker/blob/main/lua-5.3/rolling/Dockerfile) 35 | - `5.3-plucky`, `5.3.6-plucky`: [lua-5.3/plucky/Dockerfile](https://github.com/GUI/lua-docker/blob/main/lua-5.3/plucky/Dockerfile) 36 | - `5.3-luarocks-rolling`, `5.3.6-luarocks-rolling`: [lua-5.3/luarocks-rolling/Dockerfile](https://github.com/GUI/lua-docker/blob/main/lua-5.3/luarocks-rolling/Dockerfile) 37 | - `5.3-luarocks-plucky`, `5.3.6-luarocks-plucky`: [lua-5.3/luarocks-plucky/Dockerfile](https://github.com/GUI/lua-docker/blob/main/lua-5.3/luarocks-plucky/Dockerfile) 38 | - `5.2`, `5.2-debian`, `5.2-trixie`, `5.2.4`, `5.2.4-debian`, `5.2.4-trixie`: [lua-5.2/trixie/Dockerfile](https://github.com/GUI/lua-docker/blob/main/lua-5.2/trixie/Dockerfile) 39 | - `5.2-bookworm`, `5.2.4-bookworm`: [lua-5.2/bookworm/Dockerfile](https://github.com/GUI/lua-docker/blob/main/lua-5.2/bookworm/Dockerfile) 40 | - `5.2-luarocks`, `5.2-luarocks-debian`, `5.2-luarocks-trixie`, `5.2.4-luarocks`, `5.2.4-luarocks-debian`, `5.2.4-luarocks-trixie`: [lua-5.2/luarocks-trixie/Dockerfile](https://github.com/GUI/lua-docker/blob/main/lua-5.2/luarocks-trixie/Dockerfile) 41 | - `5.2-luarocks-bookworm`, `5.2.4-luarocks-bookworm`: [lua-5.2/luarocks-bookworm/Dockerfile](https://github.com/GUI/lua-docker/blob/main/lua-5.2/luarocks-bookworm/Dockerfile) 42 | - `5-alpine3`, `5.2-alpine`, `5.2-alpine3.23`, `5.2.4-alpine`, `5.2.4-alpine3`, `5.2.4-alpine3.23`: [lua-5.2/alpine3.23/Dockerfile](https://github.com/GUI/lua-docker/blob/main/lua-5.2/alpine3.23/Dockerfile) 43 | - `5.2-alpine3.22`, `5.2.4-alpine3.22`: [lua-5.2/alpine3.22/Dockerfile](https://github.com/GUI/lua-docker/blob/main/lua-5.2/alpine3.22/Dockerfile) 44 | - `5-luarocks-alpine3`, `5.2-luarocks-alpine`, `5.2-luarocks-alpine3.23`, `5.2.4-luarocks-alpine`, `5.2.4-luarocks-alpine3`, `5.2.4-luarocks-alpine3.23`: [lua-5.2/luarocks-alpine3.23/Dockerfile](https://github.com/GUI/lua-docker/blob/main/lua-5.2/luarocks-alpine3.23/Dockerfile) 45 | - `5.2-luarocks-alpine3.22`, `5.2.4-luarocks-alpine3.22`: [lua-5.2/luarocks-alpine3.22/Dockerfile](https://github.com/GUI/lua-docker/blob/main/lua-5.2/luarocks-alpine3.22/Dockerfile) 46 | - `5.2-rolling`, `5.2.4-rolling`: [lua-5.2/rolling/Dockerfile](https://github.com/GUI/lua-docker/blob/main/lua-5.2/rolling/Dockerfile) 47 | - `5.2-plucky`, `5.2.4-plucky`: [lua-5.2/plucky/Dockerfile](https://github.com/GUI/lua-docker/blob/main/lua-5.2/plucky/Dockerfile) 48 | - `5.2-luarocks-rolling`, `5.2.4-luarocks-rolling`: [lua-5.2/luarocks-rolling/Dockerfile](https://github.com/GUI/lua-docker/blob/main/lua-5.2/luarocks-rolling/Dockerfile) 49 | - `5.2-luarocks-plucky`, `5.2.4-luarocks-plucky`: [lua-5.2/luarocks-plucky/Dockerfile](https://github.com/GUI/lua-docker/blob/main/lua-5.2/luarocks-plucky/Dockerfile) 50 | 51 | ## Image Variants 52 | 53 | ### `nickblah/lua:` 54 | The default Lua image. Provides Lua. Uses Debian Linux for base image. 55 | 56 | ### `nickblah/lua:-alpine` 57 | Provides Lua. Uses Alpine Linux for base image. 58 | 59 | ### `nickblah/lua:-luarocks` 60 | Provides Lua and LuaRocks. Uses Debian Linux for base image. 61 | 62 | ### `nickblah/lua:-luarocks-alpine` 63 | Provides Lua and LuaRocks. Uses Alpine Linux for base image. 64 | 65 | ## Installing C Libraries 66 | 67 | These base images are minimal, so they only contain the necessary dependencies for running Lua and installing pure-Lua LuaRocks modules. If you need to install LuaRocks modules that include C extensions or need compiling/building, then you'll first need to install the necessary dependencies (for example, make, gcc, etc). The exact dependencies may vary depending on the module's requirements, but to install basic build dependencies, the following installation commands can be used: 68 | 69 | - For Debian based images: 70 | ```sh 71 | apt-get update && apt-get install -y build-essential 72 | ``` 73 | - For Alpine based images: 74 | ```sh 75 | apk add --no-cache build-base 76 | ``` 77 | -------------------------------------------------------------------------------- /README.luajit.md: -------------------------------------------------------------------------------- 1 | # luajit-docker 2 | 3 | Minimal, automated, and up-to-date Docker images for different LuaJIT versions. 4 | 5 | Provides variants for: 6 | 7 | - Debian, Alpine, Ubuntu, and CentOS base images 8 | - With LuaRocks 9 | - LuaJIT built with Lua 5.2 compatibility mode 10 | 11 | New versions of LuaJIT and LuaRocks should automatically be detected and trigger new docker images to built, tagged, and pushed by a daily [GitHub Actions workflow](https://github.com/GUI/lua-docker/blob/main/.github/workflows/main.yml). 12 | 13 | ## Supported Tags and Respective Dockerfile Links 14 | 15 | - `2`, `2-debian`, `2-trixie`, `2.1`, `2.1-debian`, `2.1-trixie`, `2.1.1765228720`, `2.1.1765228720-debian`, `2.1.1765228720-trixie`, `debian`, `latest`: [luajit-2.1/trixie/Dockerfile](https://github.com/GUI/lua-docker/blob/main/luajit-2.1/trixie/Dockerfile) 16 | - `2-bookworm`, `2.1-bookworm`, `2.1.1765228720-bookworm`: [luajit-2.1/bookworm/Dockerfile](https://github.com/GUI/lua-docker/blob/main/luajit-2.1/bookworm/Dockerfile) 17 | - `2-luarocks`, `2-luarocks-debian`, `2-luarocks-trixie`, `2.1-luarocks`, `2.1-luarocks-debian`, `2.1-luarocks-trixie`, `2.1.1765228720-luarocks`, `2.1.1765228720-luarocks-debian`, `2.1.1765228720-luarocks-trixie`, `luarocks`, `luarocks-debian`: [luajit-2.1/luarocks-trixie/Dockerfile](https://github.com/GUI/lua-docker/blob/main/luajit-2.1/luarocks-trixie/Dockerfile) 18 | - `2-luarocks-bookworm`, `2.1-luarocks-bookworm`, `2.1.1765228720-luarocks-bookworm`: [luajit-2.1/luarocks-bookworm/Dockerfile](https://github.com/GUI/lua-docker/blob/main/luajit-2.1/luarocks-bookworm/Dockerfile) 19 | - `2-lua52compat`, `2-lua52compat-debian`, `2-lua52compat-trixie`, `2.1-lua52compat`, `2.1-lua52compat-debian`, `2.1-lua52compat-trixie`, `2.1.1765228720-lua52compat`, `2.1.1765228720-lua52compat-debian`, `2.1.1765228720-lua52compat-trixie`, `lua52compat`, `lua52compat-debian`: [luajit-2.1/lua52compat-trixie/Dockerfile](https://github.com/GUI/lua-docker/blob/main/luajit-2.1/lua52compat-trixie/Dockerfile) 20 | - `2-lua52compat-bookworm`, `2.1-lua52compat-bookworm`, `2.1.1765228720-lua52compat-bookworm`: [luajit-2.1/lua52compat-bookworm/Dockerfile](https://github.com/GUI/lua-docker/blob/main/luajit-2.1/lua52compat-bookworm/Dockerfile) 21 | - `2-lua52compat-luarocks`, `2-lua52compat-luarocks-debian`, `2-lua52compat-luarocks-trixie`, `2.1-lua52compat-luarocks`, `2.1-lua52compat-luarocks-debian`, `2.1-lua52compat-luarocks-trixie`, `2.1.1765228720-lua52compat-luarocks`, `2.1.1765228720-lua52compat-luarocks-debian`, `2.1.1765228720-lua52compat-luarocks-trixie`, `lua52compat-luarocks`, `lua52compat-luarocks-debian`: [luajit-2.1/lua52compat-luarocks-trixie/Dockerfile](https://github.com/GUI/lua-docker/blob/main/luajit-2.1/lua52compat-luarocks-trixie/Dockerfile) 22 | - `2-lua52compat-luarocks-bookworm`, `2.1-lua52compat-luarocks-bookworm`, `2.1.1765228720-lua52compat-luarocks-bookworm`: [luajit-2.1/lua52compat-luarocks-bookworm/Dockerfile](https://github.com/GUI/lua-docker/blob/main/luajit-2.1/lua52compat-luarocks-bookworm/Dockerfile) 23 | - `2-alpine`, `2-alpine3`, `2-alpine3.23`, `2.1-alpine`, `2.1-alpine3.23`, `2.1.1765228720-alpine`, `2.1.1765228720-alpine3`, `2.1.1765228720-alpine3.23`, `alpine`: [luajit-2.1/alpine3.23/Dockerfile](https://github.com/GUI/lua-docker/blob/main/luajit-2.1/alpine3.23/Dockerfile) 24 | - `2-alpine3.22`, `2.1-alpine3.22`, `2.1.1765228720-alpine3.22`: [luajit-2.1/alpine3.22/Dockerfile](https://github.com/GUI/lua-docker/blob/main/luajit-2.1/alpine3.22/Dockerfile) 25 | - `2-luarocks-alpine`, `2-luarocks-alpine3`, `2-luarocks-alpine3.23`, `2.1-luarocks-alpine`, `2.1-luarocks-alpine3.23`, `2.1.1765228720-luarocks-alpine`, `2.1.1765228720-luarocks-alpine3`, `2.1.1765228720-luarocks-alpine3.23`, `luarocks-alpine`: [luajit-2.1/luarocks-alpine3.23/Dockerfile](https://github.com/GUI/lua-docker/blob/main/luajit-2.1/luarocks-alpine3.23/Dockerfile) 26 | - `2-luarocks-alpine3.22`, `2.1-luarocks-alpine3.22`, `2.1.1765228720-luarocks-alpine3.22`: [luajit-2.1/luarocks-alpine3.22/Dockerfile](https://github.com/GUI/lua-docker/blob/main/luajit-2.1/luarocks-alpine3.22/Dockerfile) 27 | - `2-lua52compat-alpine`, `2-lua52compat-alpine3`, `2-lua52compat-alpine3.23`, `2.1-lua52compat-alpine`, `2.1-lua52compat-alpine3.23`, `2.1.1765228720-lua52compat-alpine`, `2.1.1765228720-lua52compat-alpine3`, `2.1.1765228720-lua52compat-alpine3.23`, `lua52compat-alpine`: [luajit-2.1/lua52compat-alpine3.23/Dockerfile](https://github.com/GUI/lua-docker/blob/main/luajit-2.1/lua52compat-alpine3.23/Dockerfile) 28 | - `2-lua52compat-alpine3.22`, `2.1-lua52compat-alpine3.22`, `2.1.1765228720-lua52compat-alpine3.22`: [luajit-2.1/lua52compat-alpine3.22/Dockerfile](https://github.com/GUI/lua-docker/blob/main/luajit-2.1/lua52compat-alpine3.22/Dockerfile) 29 | - `2-lua52compat-luarocks-alpine`, `2-lua52compat-luarocks-alpine3`, `2-lua52compat-luarocks-alpine3.23`, `2.1-lua52compat-luarocks-alpine`, `2.1-lua52compat-luarocks-alpine3.23`, `2.1.1765228720-lua52compat-luarocks-alpine`, `2.1.1765228720-lua52compat-luarocks-alpine3`, `2.1.1765228720-lua52compat-luarocks-alpine3.23`, `lua52compat-luarocks-alpine`: [luajit-2.1/lua52compat-luarocks-alpine3.23/Dockerfile](https://github.com/GUI/lua-docker/blob/main/luajit-2.1/lua52compat-luarocks-alpine3.23/Dockerfile) 30 | - `2-lua52compat-luarocks-alpine3.22`, `2.1-lua52compat-luarocks-alpine3.22`, `2.1.1765228720-lua52compat-luarocks-alpine3.22`: [luajit-2.1/lua52compat-luarocks-alpine3.22/Dockerfile](https://github.com/GUI/lua-docker/blob/main/luajit-2.1/lua52compat-luarocks-alpine3.22/Dockerfile) 31 | - `2-rolling`, `2.1-rolling`, `2.1.1765228720-rolling`: [luajit-2.1/rolling/Dockerfile](https://github.com/GUI/lua-docker/blob/main/luajit-2.1/rolling/Dockerfile) 32 | - `2-plucky`, `2.1-plucky`, `2.1.1765228720-plucky`: [luajit-2.1/plucky/Dockerfile](https://github.com/GUI/lua-docker/blob/main/luajit-2.1/plucky/Dockerfile) 33 | - `2-luarocks-rolling`, `2.1-luarocks-rolling`, `2.1.1765228720-luarocks-rolling`: [luajit-2.1/luarocks-rolling/Dockerfile](https://github.com/GUI/lua-docker/blob/main/luajit-2.1/luarocks-rolling/Dockerfile) 34 | - `2-luarocks-plucky`, `2.1-luarocks-plucky`, `2.1.1765228720-luarocks-plucky`: [luajit-2.1/luarocks-plucky/Dockerfile](https://github.com/GUI/lua-docker/blob/main/luajit-2.1/luarocks-plucky/Dockerfile) 35 | - `2-lua52compat-rolling`, `2.1-lua52compat-rolling`, `2.1.1765228720-lua52compat-rolling`: [luajit-2.1/lua52compat-rolling/Dockerfile](https://github.com/GUI/lua-docker/blob/main/luajit-2.1/lua52compat-rolling/Dockerfile) 36 | - `2-lua52compat-plucky`, `2.1-lua52compat-plucky`, `2.1.1765228720-lua52compat-plucky`: [luajit-2.1/lua52compat-plucky/Dockerfile](https://github.com/GUI/lua-docker/blob/main/luajit-2.1/lua52compat-plucky/Dockerfile) 37 | - `2-lua52compat-luarocks-rolling`, `2.1-lua52compat-luarocks-rolling`, `2.1.1765228720-lua52compat-luarocks-rolling`: [luajit-2.1/lua52compat-luarocks-rolling/Dockerfile](https://github.com/GUI/lua-docker/blob/main/luajit-2.1/lua52compat-luarocks-rolling/Dockerfile) 38 | - `2-lua52compat-luarocks-plucky`, `2.1-lua52compat-luarocks-plucky`, `2.1.1765228720-lua52compat-luarocks-plucky`: [luajit-2.1/lua52compat-luarocks-plucky/Dockerfile](https://github.com/GUI/lua-docker/blob/main/luajit-2.1/lua52compat-luarocks-plucky/Dockerfile) 39 | 40 | ## Image Variants 41 | 42 | ### `nickblah/luajit:` 43 | The default LuaJIT image. Provides LuaJIT. Uses Debian Linux for base image. 44 | 45 | ### `nickblah/luajit:-alpine` 46 | Provides LuaJIT. Uses Alpine Linux for base image. 47 | 48 | ### `nickblah/luajit:-luarocks` 49 | Provides LuaJIT and LuaRocks. Uses Debian Linux for base image. 50 | 51 | ### `nickblah/luajit:-luarocks-alpine` 52 | Provides LuaJIT and LuaRocks. Uses Alpine Linux for base image. 53 | 54 | ### `nickblah/luajit:-lua52compat` 55 | Provides LuaJIT. LuaJIT compiled with `LUAJIT_ENABLE_LUA52COMPAT`. Uses Debian Linux for base image. 56 | 57 | ### `nickblah/luajit:-lua52compat-alpine` 58 | Provides LuaJIT. LuaJIT compiled with `LUAJIT_ENABLE_LUA52COMPAT`. Uses Alpine Linux for base image. 59 | 60 | ### `nickblah/luajit:-lua52compat-luarocks` 61 | Provides LuaJIT and LuaRocks. LuaJIT compiled with `LUAJIT_ENABLE_LUA52COMPAT`. Uses Debian Linux for base image. 62 | 63 | ### `nickblah/luajit:-lua52compat-luarocks-alpine` 64 | Provides LuaJIT and LuaRocks. LuaJIT compiled with `LUAJIT_ENABLE_LUA52COMPAT`. Uses Alpine Linux for base image. 65 | 66 | ## Installing C Libraries 67 | 68 | These base images are minimal, so they only contain the necessary dependencies for running Lua and installing pure-Lua LuaRocks modules. If you need to install LuaRocks modules that include C extensions or need compiling/building, then you'll first need to install the necessary dependencies (for example, make, gcc, etc). The exact dependencies may vary depending on the module's requirements, but to install basic build dependencies, the following installation commands can be used: 69 | 70 | - For Debian based images: 71 | ```sh 72 | apt-get update && apt-get install -y build-essential 73 | ``` 74 | - For Alpine based images: 75 | ```sh 76 | apk add --no-cache build-base 77 | ``` 78 | -------------------------------------------------------------------------------- /update: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | 3 | require "erb" 4 | require "fileutils" 5 | require "json" 6 | require "open-uri" 7 | require "set" 8 | require "time" 9 | 10 | VERSION_CONSTRAINTS = { 11 | "lua" => Gem::Dependency.new("lua", ">= 5.0", ">= 5.0.pre"), 12 | "luajit" => Gem::Dependency.new("luajit", ">= 2.0", ">= 2.0.pre"), 13 | } 14 | 15 | VARIANTS = { 16 | "lua" => [ 17 | ["luarocks"], 18 | ], 19 | "luajit" => [ 20 | ["luarocks"], 21 | ["lua52compat"], 22 | ["lua52compat", "luarocks"], 23 | ], 24 | } 25 | 26 | DISTROS = [ 27 | "debian", 28 | "alpine", 29 | "ubuntu", 30 | ] 31 | 32 | FileUtils.rm_rf(Dir.glob("lua-*")) 33 | FileUtils.rm_rf(Dir.glob("luajit-*")) 34 | 35 | github_lua_image = "ghcr.io/gui/lua" 36 | github_luajit_image = "ghcr.io/gui/luajit" 37 | github_build_cache_repo = "ghcr.io/gui/lua-docker-build-cache" 38 | docker_hub_lua_image = "nickblah/lua" 39 | docker_hub_luajit_image = "nickblah/luajit" 40 | 41 | versions = { 42 | "lua" => {}, 43 | "luajit" => {}, 44 | } 45 | 46 | distros = {} 47 | DISTROS.each do |distro_name| 48 | library = URI.open("https://raw.githubusercontent.com/docker-library/official-images/master/library/#{distro_name}") 49 | .read 50 | .split(/[\r\n]{2,}/) 51 | .select { |lines| lines.include?("Tags:") } 52 | .map { |lines| Hash[lines.split(/[\r\n]/).map { |r| r.split(/:\s+/, 2) }] } 53 | library.each do |distro| 54 | distro_tags = distro.fetch("Tags").split(/,\s*/) 55 | distro_version_tags = distro_tags - ["latest"] 56 | 57 | case distro_name 58 | when "debian" 59 | if distro_tags.none? { |t| t =~ /^\d+$/ } 60 | next 61 | end 62 | 63 | distro_version_tags.reject! { |t| t =~ /^(\d+|testing|rc-buggy|oldstable|sid|stable|unstable|experimental|.*-backports|.*-slim)/ } 64 | when "ubuntu" 65 | if distro_tags.include?("devel") 66 | next 67 | end 68 | 69 | distro_version_tags.reject! { |t| t =~ /^(\d+)/ } 70 | when "alpine" 71 | distro_version_tags.reject! { |t| t =~ /^(edge|\d{8})/ } 72 | end 73 | 74 | distro_version_tags.sort_by! { |t| t.length } 75 | if distro_name == "alpine" && distro_version_tags.first =~ /^\d+$/ 76 | major_version_tag = distro_version_tags.shift 77 | end 78 | distro_tag = distro_version_tags.last 79 | distro_version = distro_version_tags.first 80 | if distro_version 81 | distro_numeric_version = Gem::Version.new(distro_tags.sort_by { |t| t.length }.reverse.find { |t| t =~ /^([\d.]+)$/ }) 82 | distros[distro_name] ||= [] 83 | distros[distro_name] << { 84 | :distro_tag => distro_tag, 85 | :distro_version => distro_version, 86 | :distro_numeric_version => distro_numeric_version, 87 | :latest => distro_tags.include?("latest"), 88 | :major_version_tag => major_version_tag, 89 | } 90 | end 91 | end 92 | end 93 | 94 | distros.each do |distro, distro_versions| 95 | distro_versions.sort_by! { |v| v.fetch(:distro_numeric_version) } 96 | distro_versions.reverse! 97 | distros[distro] = distro_versions.take(2) 98 | end 99 | 100 | versions.keys.each do |lang| 101 | archive_versions = case lang 102 | when "lua" 103 | content = URI.open("https://www.lua.org/ftp/").read 104 | content += URI.open("https://www.lua.org/work/").read 105 | content.scan(/lua-([\d\.]+(?:-beta-rc\d+)?)\.tar\.gz/).flatten.compact.uniq 106 | when "luajit" 107 | data = JSON.parse(URI.open("https://api.github.com/repos/LuaJIT/LuaJIT/branches/v2.1").read) 108 | timestamp = Time.iso8601(data.fetch("commit").fetch("commit").fetch("committer").fetch("date")).to_i 109 | ["2.1.#{timestamp}"] 110 | end 111 | 112 | archive_versions.each do |version_full| 113 | version = Gem::Version.new(version_full) 114 | next unless VERSION_CONSTRAINTS.fetch(lang).match?(lang, version) 115 | 116 | version_major = version_full.match(/^(\d+)/)[1] 117 | version_minor = version_full.match(/^(\d+\.\d+)/)[1] 118 | version_name = version_minor 119 | case lang 120 | when "lua" 121 | version_name += "-beta-rc" if version.prerelease? 122 | when "luajit" 123 | version_name += "-beta" if version.prerelease? 124 | end 125 | 126 | if !versions[lang][version_name] || version > versions[lang][version_name].fetch(:version) 127 | case lang 128 | when "lua" 129 | filename = "lua-#{version_full}.tar.gz" 130 | archive_url = (version.prerelease?) ? "https://www.lua.org/work/#{filename}" : "https://www.lua.org/ftp/#{filename}" 131 | archive_sha = content.match(/href=.?[^>]*#{Regexp.escape(filename)}.*?(\s*([a-f0-9]{64})|[^<]*sha1:\s*([a-f0-9]{40}))\b/im)[1] 132 | if archive_sha.length == 64 133 | archive_sha256 = archive_sha 134 | else 135 | archive_sha1 = archive_sha 136 | end 137 | when "luajit" 138 | filename = "LuaJIT-#{data.fetch("commit").fetch("sha")}.tar.gz" 139 | archive_url = "https://github.com/LuaJIT/LuaJIT/archive/#{data.fetch("commit").fetch("sha")}.tar.gz" 140 | end 141 | 142 | versions[lang][version_name] = { 143 | :lang => lang, 144 | :version => version, 145 | :version_name => version_name, 146 | :version_major => version_major, 147 | :version_minor => version_minor, 148 | :version_full => version_full, 149 | :archive_url => archive_url, 150 | :archive_sha1 => archive_sha1, 151 | :archive_sha256 => archive_sha256, 152 | } 153 | end 154 | end 155 | end 156 | 157 | versions.each do |lang, lang_versions| 158 | latest_version = lang_versions.values.reject { |v| v.fetch(:version).prerelease? }.sort_by { |v| v.fetch(:version) }.last 159 | latest_version[:latest] = true 160 | 161 | lang_versions = lang_versions.values.sort_by { |v| v.fetch(:version) } 162 | lang_versions.reverse! 163 | if lang == "lua" 164 | versions[lang] = lang_versions.take(3) 165 | else 166 | versions[lang] = lang_versions.take(2) 167 | end 168 | end 169 | 170 | content = URI.open("https://luarocks.github.io/luarocks/releases/").read 171 | luarocks_version = content.scan(/luarocks-([\d\.]+)\.tar\.gz/).flatten.compact.uniq.sort_by { |version| Gem::Version.new(version) }.last 172 | 173 | tags = {} 174 | versions.each_value do |lang_versions| 175 | lang_versions.each do |version| 176 | distros.each do |distro, distro_versions| 177 | variants = [[]] + VARIANTS.fetch(version.fetch(:lang)) 178 | 179 | variants.each do |variant| 180 | # LuaRocks is not compatible with Lua 5.0 (needs 5.1+). 181 | if version.fetch(:version_minor) == "5.0" && variant.include?("luarocks") 182 | next 183 | end 184 | 185 | distro_versions.each_with_index do |distro_data, distro_index| 186 | template = ERB.new(File.read("Dockerfile.erb"), trim_mode: "-").result_with_hash(version.merge({ 187 | :distro => distro, 188 | :distro_tag => distro_data.fetch(:distro_tag), 189 | :variant => variant, 190 | :luarocks_version => luarocks_version, 191 | })) 192 | 193 | distro_version_name = (distro == "debian" || distro == "ubuntu") ? distro_data.fetch(:distro_version) : "#{distro}#{distro_data.fetch(:distro_version)}" 194 | variant_name = (variant.empty?) ? nil : variant.join("-") 195 | filename = File.join("#{version.fetch(:lang)}-#{version.fetch(:version_name)}", [variant_name, distro_version_name].compact.join("-"), "Dockerfile") 196 | FileUtils.mkdir_p(File.dirname(filename)) 197 | File.open(filename, "w") { |f| f.write(template) } 198 | 199 | variant_tag = [version.fetch(:version_name), variant_name, distro_version_name].compact.join("-") 200 | variant_tags = [ 201 | variant_tag, 202 | [version.fetch(:version_full), variant_name, distro_version_name].compact.join("-"), 203 | ] 204 | 205 | if version[:latest] 206 | variant_tags << [version.fetch(:version_major), variant_name, distro_version_name].compact.join("-") 207 | end 208 | 209 | if distro_data[:major_version_tag] 210 | variant_tags << [version.fetch(:version_full), variant_name, "#{distro}#{distro_data.fetch(:major_version_tag)}"].compact.join("-") 211 | variant_tags << [version.fetch(:version_major), variant_name, "#{distro}#{distro_data.fetch(:major_version_tag)}"].compact.join("-") 212 | end 213 | 214 | # Default distro tags 215 | if distro_data.fetch(:latest) 216 | variant_tags << [version.fetch(:version_name), variant_name, distro].compact.join("-") 217 | variant_tags << [version.fetch(:version_full), variant_name, distro].compact.join("-") 218 | if distro == "debian" 219 | variant_tags << [version.fetch(:version_name), variant_name].compact.join("-") 220 | variant_tags << [version.fetch(:version_full), variant_name].compact.join("-") 221 | end 222 | 223 | if version[:latest] 224 | variant_tags << [version.fetch(:version_major), variant_name, distro].compact.join("-") 225 | variant_tags << [variant_name, distro].compact.join("-") 226 | 227 | if distro == "debian" 228 | variant_tags << [version.fetch(:version_major), variant_name].compact.join("-") 229 | if variant_name 230 | variant_tags << [variant_name].compact.join("-") 231 | else 232 | variant_tags << "latest" 233 | end 234 | end 235 | end 236 | end 237 | 238 | variant_tags.uniq! 239 | variant_tags.sort! 240 | 241 | platforms = [ 242 | "linux/amd64", 243 | ] 244 | 245 | if version.fetch(:lang) != "luajit" || version.fetch(:version) >= Gem::Version.new("2.1.0-beta0") 246 | platforms << "linux/arm64" 247 | end 248 | 249 | docker_image_tags = variant_tags.map do |tag| 250 | if version.fetch(:lang) == "luajit" 251 | [ 252 | "#{github_luajit_image}:#{tag}", 253 | "#{docker_hub_luajit_image}:#{tag}", 254 | ] 255 | else 256 | [ 257 | "#{github_lua_image}:#{tag}", 258 | "#{docker_hub_lua_image}:#{tag}", 259 | ] 260 | end 261 | end.flatten 262 | 263 | build_cache_tag = "#{github_build_cache_repo}:#{variant_tag}" 264 | 265 | lang = version.fetch(:lang) 266 | tags[lang] ||= [] 267 | tags[lang] << { 268 | :variant => variant, 269 | :variant_tag => variant_tag, 270 | :variant_tags => variant_tags, 271 | :build_cache_tag => build_cache_tag, 272 | :docker_image_tags => docker_image_tags, 273 | :filename => filename, 274 | :platforms => platforms, 275 | } 276 | end 277 | end 278 | end 279 | end 280 | end 281 | 282 | template = ERB.new(File.read("docker-build.erb"), trim_mode: "-").result_with_hash({ 283 | :tags => tags, 284 | }) 285 | File.open("docker-build", "w") { |f| f.write(template) } 286 | FileUtils.chmod(0755, "docker-build") 287 | 288 | template = ERB.new(File.read("docker-push.erb"), trim_mode: "-").result_with_hash({ 289 | :tags => tags, 290 | }) 291 | File.open("docker-push", "w") { |f| f.write(template) } 292 | FileUtils.chmod(0755, "docker-push") 293 | 294 | template = ERB.new(File.read("test.erb"), trim_mode: "-").result_with_hash({ 295 | :tags => tags, 296 | }) 297 | File.open("test", "w") { |f| f.write(template) } 298 | FileUtils.chmod(0755, "test") 299 | 300 | template = ERB.new(File.read("README.md.erb"), trim_mode: "-").result_with_hash({ 301 | :tags => tags, 302 | }) 303 | File.open("README.md", "w") { |f| f.write(template) } 304 | 305 | template = ERB.new(File.read("README.lua.md.erb"), trim_mode: "-").result_with_hash({ 306 | :tags => tags, 307 | }) 308 | File.open("README.lua.md", "w") { |f| f.write(template) } 309 | 310 | template = ERB.new(File.read("README.luajit.md.erb"), trim_mode: "-").result_with_hash({ 311 | :versions => versions, 312 | }) 313 | File.open("README.luajit.md", "w") { |f| f.write(template) } 314 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # lua-docker 2 | 3 | Minimal, automated, and up-to-date Docker images for different Lua and LuaJIT versions. 4 | 5 | Provides variants for: 6 | 7 | - Debian, Alpine, and Ubuntu base images 8 | - With LuaRocks 9 | - LuaJIT 10 | - LuaJIT built with Lua 5.2 compatibility mode 11 | 12 | This repo provides the source for both Lua and LuaJIT images. The different images can be found at: 13 | 14 | - [`nickblah/lua`](https://hub.docker.com/r/nickblah/lua/): Lua images. 15 | - [`nickblah/luajit`](https://hub.docker.com/r/nickblah/luajit/): LuaJIT images. 16 | 17 | New versions of Lua, LuaJIT, and LuaRocks should automatically be detected and trigger new docker images to built, tagged, and pushed by a daily [GitHub Actions workflow](https://github.com/GUI/lua-docker/blob/main/.github/workflows/main.yml). 18 | 19 | ## Supported Tags and Respective Dockerfile Links 20 | 21 | ### [`nickblah/lua`](https://hub.docker.com/r/nickblah/lua/) 22 | - `5`, `5-debian`, `5-trixie`, `5.4`, `5.4-debian`, `5.4-trixie`, `5.4.8`, `5.4.8-debian`, `5.4.8-trixie`, `debian`, `latest`: [lua-5.4/trixie/Dockerfile](https://github.com/GUI/lua-docker/blob/main/lua-5.4/trixie/Dockerfile) 23 | - `5-bookworm`, `5.4-bookworm`, `5.4.8-bookworm`: [lua-5.4/bookworm/Dockerfile](https://github.com/GUI/lua-docker/blob/main/lua-5.4/bookworm/Dockerfile) 24 | - `5-luarocks`, `5-luarocks-debian`, `5-luarocks-trixie`, `5.4-luarocks`, `5.4-luarocks-debian`, `5.4-luarocks-trixie`, `5.4.8-luarocks`, `5.4.8-luarocks-debian`, `5.4.8-luarocks-trixie`, `luarocks`, `luarocks-debian`: [lua-5.4/luarocks-trixie/Dockerfile](https://github.com/GUI/lua-docker/blob/main/lua-5.4/luarocks-trixie/Dockerfile) 25 | - `5-luarocks-bookworm`, `5.4-luarocks-bookworm`, `5.4.8-luarocks-bookworm`: [lua-5.4/luarocks-bookworm/Dockerfile](https://github.com/GUI/lua-docker/blob/main/lua-5.4/luarocks-bookworm/Dockerfile) 26 | - `5-alpine`, `5-alpine3`, `5-alpine3.23`, `5.4-alpine`, `5.4-alpine3.23`, `5.4.8-alpine`, `5.4.8-alpine3`, `5.4.8-alpine3.23`, `alpine`: [lua-5.4/alpine3.23/Dockerfile](https://github.com/GUI/lua-docker/blob/main/lua-5.4/alpine3.23/Dockerfile) 27 | - `5-alpine3.22`, `5.4-alpine3.22`, `5.4.8-alpine3.22`: [lua-5.4/alpine3.22/Dockerfile](https://github.com/GUI/lua-docker/blob/main/lua-5.4/alpine3.22/Dockerfile) 28 | - `5-luarocks-alpine`, `5-luarocks-alpine3`, `5-luarocks-alpine3.23`, `5.4-luarocks-alpine`, `5.4-luarocks-alpine3.23`, `5.4.8-luarocks-alpine`, `5.4.8-luarocks-alpine3`, `5.4.8-luarocks-alpine3.23`, `luarocks-alpine`: [lua-5.4/luarocks-alpine3.23/Dockerfile](https://github.com/GUI/lua-docker/blob/main/lua-5.4/luarocks-alpine3.23/Dockerfile) 29 | - `5-luarocks-alpine3.22`, `5.4-luarocks-alpine3.22`, `5.4.8-luarocks-alpine3.22`: [lua-5.4/luarocks-alpine3.22/Dockerfile](https://github.com/GUI/lua-docker/blob/main/lua-5.4/luarocks-alpine3.22/Dockerfile) 30 | - `5-rolling`, `5.4-rolling`, `5.4.8-rolling`: [lua-5.4/rolling/Dockerfile](https://github.com/GUI/lua-docker/blob/main/lua-5.4/rolling/Dockerfile) 31 | - `5-plucky`, `5.4-plucky`, `5.4.8-plucky`: [lua-5.4/plucky/Dockerfile](https://github.com/GUI/lua-docker/blob/main/lua-5.4/plucky/Dockerfile) 32 | - `5-luarocks-rolling`, `5.4-luarocks-rolling`, `5.4.8-luarocks-rolling`: [lua-5.4/luarocks-rolling/Dockerfile](https://github.com/GUI/lua-docker/blob/main/lua-5.4/luarocks-rolling/Dockerfile) 33 | - `5-luarocks-plucky`, `5.4-luarocks-plucky`, `5.4.8-luarocks-plucky`: [lua-5.4/luarocks-plucky/Dockerfile](https://github.com/GUI/lua-docker/blob/main/lua-5.4/luarocks-plucky/Dockerfile) 34 | - `5.3`, `5.3-debian`, `5.3-trixie`, `5.3.6`, `5.3.6-debian`, `5.3.6-trixie`: [lua-5.3/trixie/Dockerfile](https://github.com/GUI/lua-docker/blob/main/lua-5.3/trixie/Dockerfile) 35 | - `5.3-bookworm`, `5.3.6-bookworm`: [lua-5.3/bookworm/Dockerfile](https://github.com/GUI/lua-docker/blob/main/lua-5.3/bookworm/Dockerfile) 36 | - `5.3-luarocks`, `5.3-luarocks-debian`, `5.3-luarocks-trixie`, `5.3.6-luarocks`, `5.3.6-luarocks-debian`, `5.3.6-luarocks-trixie`: [lua-5.3/luarocks-trixie/Dockerfile](https://github.com/GUI/lua-docker/blob/main/lua-5.3/luarocks-trixie/Dockerfile) 37 | - `5.3-luarocks-bookworm`, `5.3.6-luarocks-bookworm`: [lua-5.3/luarocks-bookworm/Dockerfile](https://github.com/GUI/lua-docker/blob/main/lua-5.3/luarocks-bookworm/Dockerfile) 38 | - `5-alpine3`, `5.3-alpine`, `5.3-alpine3.23`, `5.3.6-alpine`, `5.3.6-alpine3`, `5.3.6-alpine3.23`: [lua-5.3/alpine3.23/Dockerfile](https://github.com/GUI/lua-docker/blob/main/lua-5.3/alpine3.23/Dockerfile) 39 | - `5.3-alpine3.22`, `5.3.6-alpine3.22`: [lua-5.3/alpine3.22/Dockerfile](https://github.com/GUI/lua-docker/blob/main/lua-5.3/alpine3.22/Dockerfile) 40 | - `5-luarocks-alpine3`, `5.3-luarocks-alpine`, `5.3-luarocks-alpine3.23`, `5.3.6-luarocks-alpine`, `5.3.6-luarocks-alpine3`, `5.3.6-luarocks-alpine3.23`: [lua-5.3/luarocks-alpine3.23/Dockerfile](https://github.com/GUI/lua-docker/blob/main/lua-5.3/luarocks-alpine3.23/Dockerfile) 41 | - `5.3-luarocks-alpine3.22`, `5.3.6-luarocks-alpine3.22`: [lua-5.3/luarocks-alpine3.22/Dockerfile](https://github.com/GUI/lua-docker/blob/main/lua-5.3/luarocks-alpine3.22/Dockerfile) 42 | - `5.3-rolling`, `5.3.6-rolling`: [lua-5.3/rolling/Dockerfile](https://github.com/GUI/lua-docker/blob/main/lua-5.3/rolling/Dockerfile) 43 | - `5.3-plucky`, `5.3.6-plucky`: [lua-5.3/plucky/Dockerfile](https://github.com/GUI/lua-docker/blob/main/lua-5.3/plucky/Dockerfile) 44 | - `5.3-luarocks-rolling`, `5.3.6-luarocks-rolling`: [lua-5.3/luarocks-rolling/Dockerfile](https://github.com/GUI/lua-docker/blob/main/lua-5.3/luarocks-rolling/Dockerfile) 45 | - `5.3-luarocks-plucky`, `5.3.6-luarocks-plucky`: [lua-5.3/luarocks-plucky/Dockerfile](https://github.com/GUI/lua-docker/blob/main/lua-5.3/luarocks-plucky/Dockerfile) 46 | - `5.2`, `5.2-debian`, `5.2-trixie`, `5.2.4`, `5.2.4-debian`, `5.2.4-trixie`: [lua-5.2/trixie/Dockerfile](https://github.com/GUI/lua-docker/blob/main/lua-5.2/trixie/Dockerfile) 47 | - `5.2-bookworm`, `5.2.4-bookworm`: [lua-5.2/bookworm/Dockerfile](https://github.com/GUI/lua-docker/blob/main/lua-5.2/bookworm/Dockerfile) 48 | - `5.2-luarocks`, `5.2-luarocks-debian`, `5.2-luarocks-trixie`, `5.2.4-luarocks`, `5.2.4-luarocks-debian`, `5.2.4-luarocks-trixie`: [lua-5.2/luarocks-trixie/Dockerfile](https://github.com/GUI/lua-docker/blob/main/lua-5.2/luarocks-trixie/Dockerfile) 49 | - `5.2-luarocks-bookworm`, `5.2.4-luarocks-bookworm`: [lua-5.2/luarocks-bookworm/Dockerfile](https://github.com/GUI/lua-docker/blob/main/lua-5.2/luarocks-bookworm/Dockerfile) 50 | - `5-alpine3`, `5.2-alpine`, `5.2-alpine3.23`, `5.2.4-alpine`, `5.2.4-alpine3`, `5.2.4-alpine3.23`: [lua-5.2/alpine3.23/Dockerfile](https://github.com/GUI/lua-docker/blob/main/lua-5.2/alpine3.23/Dockerfile) 51 | - `5.2-alpine3.22`, `5.2.4-alpine3.22`: [lua-5.2/alpine3.22/Dockerfile](https://github.com/GUI/lua-docker/blob/main/lua-5.2/alpine3.22/Dockerfile) 52 | - `5-luarocks-alpine3`, `5.2-luarocks-alpine`, `5.2-luarocks-alpine3.23`, `5.2.4-luarocks-alpine`, `5.2.4-luarocks-alpine3`, `5.2.4-luarocks-alpine3.23`: [lua-5.2/luarocks-alpine3.23/Dockerfile](https://github.com/GUI/lua-docker/blob/main/lua-5.2/luarocks-alpine3.23/Dockerfile) 53 | - `5.2-luarocks-alpine3.22`, `5.2.4-luarocks-alpine3.22`: [lua-5.2/luarocks-alpine3.22/Dockerfile](https://github.com/GUI/lua-docker/blob/main/lua-5.2/luarocks-alpine3.22/Dockerfile) 54 | - `5.2-rolling`, `5.2.4-rolling`: [lua-5.2/rolling/Dockerfile](https://github.com/GUI/lua-docker/blob/main/lua-5.2/rolling/Dockerfile) 55 | - `5.2-plucky`, `5.2.4-plucky`: [lua-5.2/plucky/Dockerfile](https://github.com/GUI/lua-docker/blob/main/lua-5.2/plucky/Dockerfile) 56 | - `5.2-luarocks-rolling`, `5.2.4-luarocks-rolling`: [lua-5.2/luarocks-rolling/Dockerfile](https://github.com/GUI/lua-docker/blob/main/lua-5.2/luarocks-rolling/Dockerfile) 57 | - `5.2-luarocks-plucky`, `5.2.4-luarocks-plucky`: [lua-5.2/luarocks-plucky/Dockerfile](https://github.com/GUI/lua-docker/blob/main/lua-5.2/luarocks-plucky/Dockerfile) 58 | ### [`nickblah/luajit`](https://hub.docker.com/r/nickblah/luajit/) 59 | - `2`, `2-debian`, `2-trixie`, `2.1`, `2.1-debian`, `2.1-trixie`, `2.1.1765228720`, `2.1.1765228720-debian`, `2.1.1765228720-trixie`, `debian`, `latest`: [luajit-2.1/trixie/Dockerfile](https://github.com/GUI/lua-docker/blob/main/luajit-2.1/trixie/Dockerfile) 60 | - `2-bookworm`, `2.1-bookworm`, `2.1.1765228720-bookworm`: [luajit-2.1/bookworm/Dockerfile](https://github.com/GUI/lua-docker/blob/main/luajit-2.1/bookworm/Dockerfile) 61 | - `2-luarocks`, `2-luarocks-debian`, `2-luarocks-trixie`, `2.1-luarocks`, `2.1-luarocks-debian`, `2.1-luarocks-trixie`, `2.1.1765228720-luarocks`, `2.1.1765228720-luarocks-debian`, `2.1.1765228720-luarocks-trixie`, `luarocks`, `luarocks-debian`: [luajit-2.1/luarocks-trixie/Dockerfile](https://github.com/GUI/lua-docker/blob/main/luajit-2.1/luarocks-trixie/Dockerfile) 62 | - `2-luarocks-bookworm`, `2.1-luarocks-bookworm`, `2.1.1765228720-luarocks-bookworm`: [luajit-2.1/luarocks-bookworm/Dockerfile](https://github.com/GUI/lua-docker/blob/main/luajit-2.1/luarocks-bookworm/Dockerfile) 63 | - `2-lua52compat`, `2-lua52compat-debian`, `2-lua52compat-trixie`, `2.1-lua52compat`, `2.1-lua52compat-debian`, `2.1-lua52compat-trixie`, `2.1.1765228720-lua52compat`, `2.1.1765228720-lua52compat-debian`, `2.1.1765228720-lua52compat-trixie`, `lua52compat`, `lua52compat-debian`: [luajit-2.1/lua52compat-trixie/Dockerfile](https://github.com/GUI/lua-docker/blob/main/luajit-2.1/lua52compat-trixie/Dockerfile) 64 | - `2-lua52compat-bookworm`, `2.1-lua52compat-bookworm`, `2.1.1765228720-lua52compat-bookworm`: [luajit-2.1/lua52compat-bookworm/Dockerfile](https://github.com/GUI/lua-docker/blob/main/luajit-2.1/lua52compat-bookworm/Dockerfile) 65 | - `2-lua52compat-luarocks`, `2-lua52compat-luarocks-debian`, `2-lua52compat-luarocks-trixie`, `2.1-lua52compat-luarocks`, `2.1-lua52compat-luarocks-debian`, `2.1-lua52compat-luarocks-trixie`, `2.1.1765228720-lua52compat-luarocks`, `2.1.1765228720-lua52compat-luarocks-debian`, `2.1.1765228720-lua52compat-luarocks-trixie`, `lua52compat-luarocks`, `lua52compat-luarocks-debian`: [luajit-2.1/lua52compat-luarocks-trixie/Dockerfile](https://github.com/GUI/lua-docker/blob/main/luajit-2.1/lua52compat-luarocks-trixie/Dockerfile) 66 | - `2-lua52compat-luarocks-bookworm`, `2.1-lua52compat-luarocks-bookworm`, `2.1.1765228720-lua52compat-luarocks-bookworm`: [luajit-2.1/lua52compat-luarocks-bookworm/Dockerfile](https://github.com/GUI/lua-docker/blob/main/luajit-2.1/lua52compat-luarocks-bookworm/Dockerfile) 67 | - `2-alpine`, `2-alpine3`, `2-alpine3.23`, `2.1-alpine`, `2.1-alpine3.23`, `2.1.1765228720-alpine`, `2.1.1765228720-alpine3`, `2.1.1765228720-alpine3.23`, `alpine`: [luajit-2.1/alpine3.23/Dockerfile](https://github.com/GUI/lua-docker/blob/main/luajit-2.1/alpine3.23/Dockerfile) 68 | - `2-alpine3.22`, `2.1-alpine3.22`, `2.1.1765228720-alpine3.22`: [luajit-2.1/alpine3.22/Dockerfile](https://github.com/GUI/lua-docker/blob/main/luajit-2.1/alpine3.22/Dockerfile) 69 | - `2-luarocks-alpine`, `2-luarocks-alpine3`, `2-luarocks-alpine3.23`, `2.1-luarocks-alpine`, `2.1-luarocks-alpine3.23`, `2.1.1765228720-luarocks-alpine`, `2.1.1765228720-luarocks-alpine3`, `2.1.1765228720-luarocks-alpine3.23`, `luarocks-alpine`: [luajit-2.1/luarocks-alpine3.23/Dockerfile](https://github.com/GUI/lua-docker/blob/main/luajit-2.1/luarocks-alpine3.23/Dockerfile) 70 | - `2-luarocks-alpine3.22`, `2.1-luarocks-alpine3.22`, `2.1.1765228720-luarocks-alpine3.22`: [luajit-2.1/luarocks-alpine3.22/Dockerfile](https://github.com/GUI/lua-docker/blob/main/luajit-2.1/luarocks-alpine3.22/Dockerfile) 71 | - `2-lua52compat-alpine`, `2-lua52compat-alpine3`, `2-lua52compat-alpine3.23`, `2.1-lua52compat-alpine`, `2.1-lua52compat-alpine3.23`, `2.1.1765228720-lua52compat-alpine`, `2.1.1765228720-lua52compat-alpine3`, `2.1.1765228720-lua52compat-alpine3.23`, `lua52compat-alpine`: [luajit-2.1/lua52compat-alpine3.23/Dockerfile](https://github.com/GUI/lua-docker/blob/main/luajit-2.1/lua52compat-alpine3.23/Dockerfile) 72 | - `2-lua52compat-alpine3.22`, `2.1-lua52compat-alpine3.22`, `2.1.1765228720-lua52compat-alpine3.22`: [luajit-2.1/lua52compat-alpine3.22/Dockerfile](https://github.com/GUI/lua-docker/blob/main/luajit-2.1/lua52compat-alpine3.22/Dockerfile) 73 | - `2-lua52compat-luarocks-alpine`, `2-lua52compat-luarocks-alpine3`, `2-lua52compat-luarocks-alpine3.23`, `2.1-lua52compat-luarocks-alpine`, `2.1-lua52compat-luarocks-alpine3.23`, `2.1.1765228720-lua52compat-luarocks-alpine`, `2.1.1765228720-lua52compat-luarocks-alpine3`, `2.1.1765228720-lua52compat-luarocks-alpine3.23`, `lua52compat-luarocks-alpine`: [luajit-2.1/lua52compat-luarocks-alpine3.23/Dockerfile](https://github.com/GUI/lua-docker/blob/main/luajit-2.1/lua52compat-luarocks-alpine3.23/Dockerfile) 74 | - `2-lua52compat-luarocks-alpine3.22`, `2.1-lua52compat-luarocks-alpine3.22`, `2.1.1765228720-lua52compat-luarocks-alpine3.22`: [luajit-2.1/lua52compat-luarocks-alpine3.22/Dockerfile](https://github.com/GUI/lua-docker/blob/main/luajit-2.1/lua52compat-luarocks-alpine3.22/Dockerfile) 75 | - `2-rolling`, `2.1-rolling`, `2.1.1765228720-rolling`: [luajit-2.1/rolling/Dockerfile](https://github.com/GUI/lua-docker/blob/main/luajit-2.1/rolling/Dockerfile) 76 | - `2-plucky`, `2.1-plucky`, `2.1.1765228720-plucky`: [luajit-2.1/plucky/Dockerfile](https://github.com/GUI/lua-docker/blob/main/luajit-2.1/plucky/Dockerfile) 77 | - `2-luarocks-rolling`, `2.1-luarocks-rolling`, `2.1.1765228720-luarocks-rolling`: [luajit-2.1/luarocks-rolling/Dockerfile](https://github.com/GUI/lua-docker/blob/main/luajit-2.1/luarocks-rolling/Dockerfile) 78 | - `2-luarocks-plucky`, `2.1-luarocks-plucky`, `2.1.1765228720-luarocks-plucky`: [luajit-2.1/luarocks-plucky/Dockerfile](https://github.com/GUI/lua-docker/blob/main/luajit-2.1/luarocks-plucky/Dockerfile) 79 | - `2-lua52compat-rolling`, `2.1-lua52compat-rolling`, `2.1.1765228720-lua52compat-rolling`: [luajit-2.1/lua52compat-rolling/Dockerfile](https://github.com/GUI/lua-docker/blob/main/luajit-2.1/lua52compat-rolling/Dockerfile) 80 | - `2-lua52compat-plucky`, `2.1-lua52compat-plucky`, `2.1.1765228720-lua52compat-plucky`: [luajit-2.1/lua52compat-plucky/Dockerfile](https://github.com/GUI/lua-docker/blob/main/luajit-2.1/lua52compat-plucky/Dockerfile) 81 | - `2-lua52compat-luarocks-rolling`, `2.1-lua52compat-luarocks-rolling`, `2.1.1765228720-lua52compat-luarocks-rolling`: [luajit-2.1/lua52compat-luarocks-rolling/Dockerfile](https://github.com/GUI/lua-docker/blob/main/luajit-2.1/lua52compat-luarocks-rolling/Dockerfile) 82 | - `2-lua52compat-luarocks-plucky`, `2.1-lua52compat-luarocks-plucky`, `2.1.1765228720-lua52compat-luarocks-plucky`: [luajit-2.1/lua52compat-luarocks-plucky/Dockerfile](https://github.com/GUI/lua-docker/blob/main/luajit-2.1/lua52compat-luarocks-plucky/Dockerfile) 83 | 84 | ## Image Variants 85 | 86 | ### `nickblah/lua:` 87 | The default Lua image. Provides Lua. Uses Debian Linux for base image. 88 | 89 | ### `nickblah/lua:-alpine` 90 | Provides Lua. Uses Alpine Linux for base image. 91 | 92 | ### `nickblah/lua:-luarocks` 93 | Provides Lua and LuaRocks. Uses Debian Linux for base image. 94 | 95 | ### `nickblah/lua:-luarocks-alpine` 96 | Provides Lua and LuaRocks. Uses Alpine Linux for base image. 97 | 98 | ### `nickblah/luajit:` 99 | The default LuaJIT image. Provides LuaJIT. Uses Debian Linux for base image. 100 | 101 | ### `nickblah/luajit:-alpine` 102 | Provides LuaJIT. Uses Alpine Linux for base image. 103 | 104 | ### `nickblah/luajit:-luarocks` 105 | Provides LuaJIT and LuaRocks. Uses Debian Linux for base image. 106 | 107 | ### `nickblah/luajit:-luarocks-alpine` 108 | Provides LuaJIT and LuaRocks. Uses Alpine Linux for base image. 109 | 110 | ### `nickblah/luajit:-lua52compat` 111 | Provides LuaJIT. LuaJIT compiled with `LUAJIT_ENABLE_LUA52COMPAT`. Uses Debian Linux for base image. 112 | 113 | ### `nickblah/luajit:-lua52compat-alpine` 114 | Provides LuaJIT. LuaJIT compiled with `LUAJIT_ENABLE_LUA52COMPAT`. Uses Alpine Linux for base image. 115 | 116 | ### `nickblah/luajit:-lua52compat-luarocks` 117 | Provides LuaJIT and LuaRocks. LuaJIT compiled with `LUAJIT_ENABLE_LUA52COMPAT`. Uses Debian Linux for base image. 118 | 119 | ### `nickblah/luajit:-lua52compat-luarocks-alpine` 120 | Provides LuaJIT and LuaRocks. LuaJIT compiled with `LUAJIT_ENABLE_LUA52COMPAT`. Uses Alpine Linux for base image. 121 | 122 | ## Installing C Libraries 123 | 124 | These base images are minimal, so they only contain the necessary dependencies for running Lua and installing pure-Lua LuaRocks modules. If you need to install LuaRocks modules that include C extensions or need compiling/building, then you'll first need to install the necessary dependencies (for example, make, gcc, etc). The exact dependencies may vary depending on the module's requirements, but to install basic build dependencies, the following installation commands can be used: 125 | 126 | - For Debian based images: 127 | ```sh 128 | apt-get update && apt-get install -y build-essential 129 | ``` 130 | - For Alpine based images: 131 | ```sh 132 | apk add --no-cache build-base 133 | ``` 134 | -------------------------------------------------------------------------------- /docker-build: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -Eeuxo pipefail 4 | 5 | docker buildx build \ 6 | --platform 'linux/amd64,linux/arm64' \ 7 | --pull \ 8 | --push \ 9 | --cache-from 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:5.4-trixie' \ 10 | --cache-to 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:5.4-trixie,mode=max' \ 11 | --tag 'localhost:5000/ghcr.io/gui/lua-docker-build-cache:5.4-trixie' \ 12 | --file lua-5.4/trixie/Dockerfile \ 13 | . 14 | docker buildx build \ 15 | --platform 'linux/amd64,linux/arm64' \ 16 | --pull \ 17 | --push \ 18 | --cache-from 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:5.4-bookworm' \ 19 | --cache-to 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:5.4-bookworm,mode=max' \ 20 | --tag 'localhost:5000/ghcr.io/gui/lua-docker-build-cache:5.4-bookworm' \ 21 | --file lua-5.4/bookworm/Dockerfile \ 22 | . 23 | docker buildx build \ 24 | --platform 'linux/amd64,linux/arm64' \ 25 | --pull \ 26 | --push \ 27 | --cache-from 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:5.4-luarocks-trixie' \ 28 | --cache-to 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:5.4-luarocks-trixie,mode=max' \ 29 | --tag 'localhost:5000/ghcr.io/gui/lua-docker-build-cache:5.4-luarocks-trixie' \ 30 | --file lua-5.4/luarocks-trixie/Dockerfile \ 31 | . 32 | docker buildx build \ 33 | --platform 'linux/amd64,linux/arm64' \ 34 | --pull \ 35 | --push \ 36 | --cache-from 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:5.4-luarocks-bookworm' \ 37 | --cache-to 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:5.4-luarocks-bookworm,mode=max' \ 38 | --tag 'localhost:5000/ghcr.io/gui/lua-docker-build-cache:5.4-luarocks-bookworm' \ 39 | --file lua-5.4/luarocks-bookworm/Dockerfile \ 40 | . 41 | docker buildx build \ 42 | --platform 'linux/amd64,linux/arm64' \ 43 | --pull \ 44 | --push \ 45 | --cache-from 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:5.4-alpine3.23' \ 46 | --cache-to 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:5.4-alpine3.23,mode=max' \ 47 | --tag 'localhost:5000/ghcr.io/gui/lua-docker-build-cache:5.4-alpine3.23' \ 48 | --file lua-5.4/alpine3.23/Dockerfile \ 49 | . 50 | docker buildx build \ 51 | --platform 'linux/amd64,linux/arm64' \ 52 | --pull \ 53 | --push \ 54 | --cache-from 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:5.4-alpine3.22' \ 55 | --cache-to 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:5.4-alpine3.22,mode=max' \ 56 | --tag 'localhost:5000/ghcr.io/gui/lua-docker-build-cache:5.4-alpine3.22' \ 57 | --file lua-5.4/alpine3.22/Dockerfile \ 58 | . 59 | docker buildx build \ 60 | --platform 'linux/amd64,linux/arm64' \ 61 | --pull \ 62 | --push \ 63 | --cache-from 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:5.4-luarocks-alpine3.23' \ 64 | --cache-to 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:5.4-luarocks-alpine3.23,mode=max' \ 65 | --tag 'localhost:5000/ghcr.io/gui/lua-docker-build-cache:5.4-luarocks-alpine3.23' \ 66 | --file lua-5.4/luarocks-alpine3.23/Dockerfile \ 67 | . 68 | docker buildx build \ 69 | --platform 'linux/amd64,linux/arm64' \ 70 | --pull \ 71 | --push \ 72 | --cache-from 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:5.4-luarocks-alpine3.22' \ 73 | --cache-to 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:5.4-luarocks-alpine3.22,mode=max' \ 74 | --tag 'localhost:5000/ghcr.io/gui/lua-docker-build-cache:5.4-luarocks-alpine3.22' \ 75 | --file lua-5.4/luarocks-alpine3.22/Dockerfile \ 76 | . 77 | docker buildx build \ 78 | --platform 'linux/amd64,linux/arm64' \ 79 | --pull \ 80 | --push \ 81 | --cache-from 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:5.4-rolling' \ 82 | --cache-to 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:5.4-rolling,mode=max' \ 83 | --tag 'localhost:5000/ghcr.io/gui/lua-docker-build-cache:5.4-rolling' \ 84 | --file lua-5.4/rolling/Dockerfile \ 85 | . 86 | docker buildx build \ 87 | --platform 'linux/amd64,linux/arm64' \ 88 | --pull \ 89 | --push \ 90 | --cache-from 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:5.4-plucky' \ 91 | --cache-to 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:5.4-plucky,mode=max' \ 92 | --tag 'localhost:5000/ghcr.io/gui/lua-docker-build-cache:5.4-plucky' \ 93 | --file lua-5.4/plucky/Dockerfile \ 94 | . 95 | docker buildx build \ 96 | --platform 'linux/amd64,linux/arm64' \ 97 | --pull \ 98 | --push \ 99 | --cache-from 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:5.4-luarocks-rolling' \ 100 | --cache-to 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:5.4-luarocks-rolling,mode=max' \ 101 | --tag 'localhost:5000/ghcr.io/gui/lua-docker-build-cache:5.4-luarocks-rolling' \ 102 | --file lua-5.4/luarocks-rolling/Dockerfile \ 103 | . 104 | docker buildx build \ 105 | --platform 'linux/amd64,linux/arm64' \ 106 | --pull \ 107 | --push \ 108 | --cache-from 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:5.4-luarocks-plucky' \ 109 | --cache-to 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:5.4-luarocks-plucky,mode=max' \ 110 | --tag 'localhost:5000/ghcr.io/gui/lua-docker-build-cache:5.4-luarocks-plucky' \ 111 | --file lua-5.4/luarocks-plucky/Dockerfile \ 112 | . 113 | docker buildx build \ 114 | --platform 'linux/amd64,linux/arm64' \ 115 | --pull \ 116 | --push \ 117 | --cache-from 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:5.3-trixie' \ 118 | --cache-to 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:5.3-trixie,mode=max' \ 119 | --tag 'localhost:5000/ghcr.io/gui/lua-docker-build-cache:5.3-trixie' \ 120 | --file lua-5.3/trixie/Dockerfile \ 121 | . 122 | docker buildx build \ 123 | --platform 'linux/amd64,linux/arm64' \ 124 | --pull \ 125 | --push \ 126 | --cache-from 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:5.3-bookworm' \ 127 | --cache-to 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:5.3-bookworm,mode=max' \ 128 | --tag 'localhost:5000/ghcr.io/gui/lua-docker-build-cache:5.3-bookworm' \ 129 | --file lua-5.3/bookworm/Dockerfile \ 130 | . 131 | docker buildx build \ 132 | --platform 'linux/amd64,linux/arm64' \ 133 | --pull \ 134 | --push \ 135 | --cache-from 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:5.3-luarocks-trixie' \ 136 | --cache-to 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:5.3-luarocks-trixie,mode=max' \ 137 | --tag 'localhost:5000/ghcr.io/gui/lua-docker-build-cache:5.3-luarocks-trixie' \ 138 | --file lua-5.3/luarocks-trixie/Dockerfile \ 139 | . 140 | docker buildx build \ 141 | --platform 'linux/amd64,linux/arm64' \ 142 | --pull \ 143 | --push \ 144 | --cache-from 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:5.3-luarocks-bookworm' \ 145 | --cache-to 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:5.3-luarocks-bookworm,mode=max' \ 146 | --tag 'localhost:5000/ghcr.io/gui/lua-docker-build-cache:5.3-luarocks-bookworm' \ 147 | --file lua-5.3/luarocks-bookworm/Dockerfile \ 148 | . 149 | docker buildx build \ 150 | --platform 'linux/amd64,linux/arm64' \ 151 | --pull \ 152 | --push \ 153 | --cache-from 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:5.3-alpine3.23' \ 154 | --cache-to 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:5.3-alpine3.23,mode=max' \ 155 | --tag 'localhost:5000/ghcr.io/gui/lua-docker-build-cache:5.3-alpine3.23' \ 156 | --file lua-5.3/alpine3.23/Dockerfile \ 157 | . 158 | docker buildx build \ 159 | --platform 'linux/amd64,linux/arm64' \ 160 | --pull \ 161 | --push \ 162 | --cache-from 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:5.3-alpine3.22' \ 163 | --cache-to 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:5.3-alpine3.22,mode=max' \ 164 | --tag 'localhost:5000/ghcr.io/gui/lua-docker-build-cache:5.3-alpine3.22' \ 165 | --file lua-5.3/alpine3.22/Dockerfile \ 166 | . 167 | docker buildx build \ 168 | --platform 'linux/amd64,linux/arm64' \ 169 | --pull \ 170 | --push \ 171 | --cache-from 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:5.3-luarocks-alpine3.23' \ 172 | --cache-to 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:5.3-luarocks-alpine3.23,mode=max' \ 173 | --tag 'localhost:5000/ghcr.io/gui/lua-docker-build-cache:5.3-luarocks-alpine3.23' \ 174 | --file lua-5.3/luarocks-alpine3.23/Dockerfile \ 175 | . 176 | docker buildx build \ 177 | --platform 'linux/amd64,linux/arm64' \ 178 | --pull \ 179 | --push \ 180 | --cache-from 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:5.3-luarocks-alpine3.22' \ 181 | --cache-to 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:5.3-luarocks-alpine3.22,mode=max' \ 182 | --tag 'localhost:5000/ghcr.io/gui/lua-docker-build-cache:5.3-luarocks-alpine3.22' \ 183 | --file lua-5.3/luarocks-alpine3.22/Dockerfile \ 184 | . 185 | docker buildx build \ 186 | --platform 'linux/amd64,linux/arm64' \ 187 | --pull \ 188 | --push \ 189 | --cache-from 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:5.3-rolling' \ 190 | --cache-to 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:5.3-rolling,mode=max' \ 191 | --tag 'localhost:5000/ghcr.io/gui/lua-docker-build-cache:5.3-rolling' \ 192 | --file lua-5.3/rolling/Dockerfile \ 193 | . 194 | docker buildx build \ 195 | --platform 'linux/amd64,linux/arm64' \ 196 | --pull \ 197 | --push \ 198 | --cache-from 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:5.3-plucky' \ 199 | --cache-to 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:5.3-plucky,mode=max' \ 200 | --tag 'localhost:5000/ghcr.io/gui/lua-docker-build-cache:5.3-plucky' \ 201 | --file lua-5.3/plucky/Dockerfile \ 202 | . 203 | docker buildx build \ 204 | --platform 'linux/amd64,linux/arm64' \ 205 | --pull \ 206 | --push \ 207 | --cache-from 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:5.3-luarocks-rolling' \ 208 | --cache-to 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:5.3-luarocks-rolling,mode=max' \ 209 | --tag 'localhost:5000/ghcr.io/gui/lua-docker-build-cache:5.3-luarocks-rolling' \ 210 | --file lua-5.3/luarocks-rolling/Dockerfile \ 211 | . 212 | docker buildx build \ 213 | --platform 'linux/amd64,linux/arm64' \ 214 | --pull \ 215 | --push \ 216 | --cache-from 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:5.3-luarocks-plucky' \ 217 | --cache-to 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:5.3-luarocks-plucky,mode=max' \ 218 | --tag 'localhost:5000/ghcr.io/gui/lua-docker-build-cache:5.3-luarocks-plucky' \ 219 | --file lua-5.3/luarocks-plucky/Dockerfile \ 220 | . 221 | docker buildx build \ 222 | --platform 'linux/amd64,linux/arm64' \ 223 | --pull \ 224 | --push \ 225 | --cache-from 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:5.2-trixie' \ 226 | --cache-to 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:5.2-trixie,mode=max' \ 227 | --tag 'localhost:5000/ghcr.io/gui/lua-docker-build-cache:5.2-trixie' \ 228 | --file lua-5.2/trixie/Dockerfile \ 229 | . 230 | docker buildx build \ 231 | --platform 'linux/amd64,linux/arm64' \ 232 | --pull \ 233 | --push \ 234 | --cache-from 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:5.2-bookworm' \ 235 | --cache-to 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:5.2-bookworm,mode=max' \ 236 | --tag 'localhost:5000/ghcr.io/gui/lua-docker-build-cache:5.2-bookworm' \ 237 | --file lua-5.2/bookworm/Dockerfile \ 238 | . 239 | docker buildx build \ 240 | --platform 'linux/amd64,linux/arm64' \ 241 | --pull \ 242 | --push \ 243 | --cache-from 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:5.2-luarocks-trixie' \ 244 | --cache-to 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:5.2-luarocks-trixie,mode=max' \ 245 | --tag 'localhost:5000/ghcr.io/gui/lua-docker-build-cache:5.2-luarocks-trixie' \ 246 | --file lua-5.2/luarocks-trixie/Dockerfile \ 247 | . 248 | docker buildx build \ 249 | --platform 'linux/amd64,linux/arm64' \ 250 | --pull \ 251 | --push \ 252 | --cache-from 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:5.2-luarocks-bookworm' \ 253 | --cache-to 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:5.2-luarocks-bookworm,mode=max' \ 254 | --tag 'localhost:5000/ghcr.io/gui/lua-docker-build-cache:5.2-luarocks-bookworm' \ 255 | --file lua-5.2/luarocks-bookworm/Dockerfile \ 256 | . 257 | docker buildx build \ 258 | --platform 'linux/amd64,linux/arm64' \ 259 | --pull \ 260 | --push \ 261 | --cache-from 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:5.2-alpine3.23' \ 262 | --cache-to 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:5.2-alpine3.23,mode=max' \ 263 | --tag 'localhost:5000/ghcr.io/gui/lua-docker-build-cache:5.2-alpine3.23' \ 264 | --file lua-5.2/alpine3.23/Dockerfile \ 265 | . 266 | docker buildx build \ 267 | --platform 'linux/amd64,linux/arm64' \ 268 | --pull \ 269 | --push \ 270 | --cache-from 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:5.2-alpine3.22' \ 271 | --cache-to 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:5.2-alpine3.22,mode=max' \ 272 | --tag 'localhost:5000/ghcr.io/gui/lua-docker-build-cache:5.2-alpine3.22' \ 273 | --file lua-5.2/alpine3.22/Dockerfile \ 274 | . 275 | docker buildx build \ 276 | --platform 'linux/amd64,linux/arm64' \ 277 | --pull \ 278 | --push \ 279 | --cache-from 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:5.2-luarocks-alpine3.23' \ 280 | --cache-to 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:5.2-luarocks-alpine3.23,mode=max' \ 281 | --tag 'localhost:5000/ghcr.io/gui/lua-docker-build-cache:5.2-luarocks-alpine3.23' \ 282 | --file lua-5.2/luarocks-alpine3.23/Dockerfile \ 283 | . 284 | docker buildx build \ 285 | --platform 'linux/amd64,linux/arm64' \ 286 | --pull \ 287 | --push \ 288 | --cache-from 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:5.2-luarocks-alpine3.22' \ 289 | --cache-to 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:5.2-luarocks-alpine3.22,mode=max' \ 290 | --tag 'localhost:5000/ghcr.io/gui/lua-docker-build-cache:5.2-luarocks-alpine3.22' \ 291 | --file lua-5.2/luarocks-alpine3.22/Dockerfile \ 292 | . 293 | docker buildx build \ 294 | --platform 'linux/amd64,linux/arm64' \ 295 | --pull \ 296 | --push \ 297 | --cache-from 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:5.2-rolling' \ 298 | --cache-to 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:5.2-rolling,mode=max' \ 299 | --tag 'localhost:5000/ghcr.io/gui/lua-docker-build-cache:5.2-rolling' \ 300 | --file lua-5.2/rolling/Dockerfile \ 301 | . 302 | docker buildx build \ 303 | --platform 'linux/amd64,linux/arm64' \ 304 | --pull \ 305 | --push \ 306 | --cache-from 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:5.2-plucky' \ 307 | --cache-to 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:5.2-plucky,mode=max' \ 308 | --tag 'localhost:5000/ghcr.io/gui/lua-docker-build-cache:5.2-plucky' \ 309 | --file lua-5.2/plucky/Dockerfile \ 310 | . 311 | docker buildx build \ 312 | --platform 'linux/amd64,linux/arm64' \ 313 | --pull \ 314 | --push \ 315 | --cache-from 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:5.2-luarocks-rolling' \ 316 | --cache-to 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:5.2-luarocks-rolling,mode=max' \ 317 | --tag 'localhost:5000/ghcr.io/gui/lua-docker-build-cache:5.2-luarocks-rolling' \ 318 | --file lua-5.2/luarocks-rolling/Dockerfile \ 319 | . 320 | docker buildx build \ 321 | --platform 'linux/amd64,linux/arm64' \ 322 | --pull \ 323 | --push \ 324 | --cache-from 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:5.2-luarocks-plucky' \ 325 | --cache-to 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:5.2-luarocks-plucky,mode=max' \ 326 | --tag 'localhost:5000/ghcr.io/gui/lua-docker-build-cache:5.2-luarocks-plucky' \ 327 | --file lua-5.2/luarocks-plucky/Dockerfile \ 328 | . 329 | docker buildx build \ 330 | --platform 'linux/amd64,linux/arm64' \ 331 | --pull \ 332 | --push \ 333 | --cache-from 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:2.1-trixie' \ 334 | --cache-to 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:2.1-trixie,mode=max' \ 335 | --tag 'localhost:5000/ghcr.io/gui/lua-docker-build-cache:2.1-trixie' \ 336 | --file luajit-2.1/trixie/Dockerfile \ 337 | . 338 | docker buildx build \ 339 | --platform 'linux/amd64,linux/arm64' \ 340 | --pull \ 341 | --push \ 342 | --cache-from 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:2.1-bookworm' \ 343 | --cache-to 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:2.1-bookworm,mode=max' \ 344 | --tag 'localhost:5000/ghcr.io/gui/lua-docker-build-cache:2.1-bookworm' \ 345 | --file luajit-2.1/bookworm/Dockerfile \ 346 | . 347 | docker buildx build \ 348 | --platform 'linux/amd64,linux/arm64' \ 349 | --pull \ 350 | --push \ 351 | --cache-from 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:2.1-luarocks-trixie' \ 352 | --cache-to 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:2.1-luarocks-trixie,mode=max' \ 353 | --tag 'localhost:5000/ghcr.io/gui/lua-docker-build-cache:2.1-luarocks-trixie' \ 354 | --file luajit-2.1/luarocks-trixie/Dockerfile \ 355 | . 356 | docker buildx build \ 357 | --platform 'linux/amd64,linux/arm64' \ 358 | --pull \ 359 | --push \ 360 | --cache-from 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:2.1-luarocks-bookworm' \ 361 | --cache-to 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:2.1-luarocks-bookworm,mode=max' \ 362 | --tag 'localhost:5000/ghcr.io/gui/lua-docker-build-cache:2.1-luarocks-bookworm' \ 363 | --file luajit-2.1/luarocks-bookworm/Dockerfile \ 364 | . 365 | docker buildx build \ 366 | --platform 'linux/amd64,linux/arm64' \ 367 | --pull \ 368 | --push \ 369 | --cache-from 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:2.1-lua52compat-trixie' \ 370 | --cache-to 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:2.1-lua52compat-trixie,mode=max' \ 371 | --tag 'localhost:5000/ghcr.io/gui/lua-docker-build-cache:2.1-lua52compat-trixie' \ 372 | --file luajit-2.1/lua52compat-trixie/Dockerfile \ 373 | . 374 | docker buildx build \ 375 | --platform 'linux/amd64,linux/arm64' \ 376 | --pull \ 377 | --push \ 378 | --cache-from 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:2.1-lua52compat-bookworm' \ 379 | --cache-to 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:2.1-lua52compat-bookworm,mode=max' \ 380 | --tag 'localhost:5000/ghcr.io/gui/lua-docker-build-cache:2.1-lua52compat-bookworm' \ 381 | --file luajit-2.1/lua52compat-bookworm/Dockerfile \ 382 | . 383 | docker buildx build \ 384 | --platform 'linux/amd64,linux/arm64' \ 385 | --pull \ 386 | --push \ 387 | --cache-from 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:2.1-lua52compat-luarocks-trixie' \ 388 | --cache-to 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:2.1-lua52compat-luarocks-trixie,mode=max' \ 389 | --tag 'localhost:5000/ghcr.io/gui/lua-docker-build-cache:2.1-lua52compat-luarocks-trixie' \ 390 | --file luajit-2.1/lua52compat-luarocks-trixie/Dockerfile \ 391 | . 392 | docker buildx build \ 393 | --platform 'linux/amd64,linux/arm64' \ 394 | --pull \ 395 | --push \ 396 | --cache-from 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:2.1-lua52compat-luarocks-bookworm' \ 397 | --cache-to 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:2.1-lua52compat-luarocks-bookworm,mode=max' \ 398 | --tag 'localhost:5000/ghcr.io/gui/lua-docker-build-cache:2.1-lua52compat-luarocks-bookworm' \ 399 | --file luajit-2.1/lua52compat-luarocks-bookworm/Dockerfile \ 400 | . 401 | docker buildx build \ 402 | --platform 'linux/amd64,linux/arm64' \ 403 | --pull \ 404 | --push \ 405 | --cache-from 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:2.1-alpine3.23' \ 406 | --cache-to 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:2.1-alpine3.23,mode=max' \ 407 | --tag 'localhost:5000/ghcr.io/gui/lua-docker-build-cache:2.1-alpine3.23' \ 408 | --file luajit-2.1/alpine3.23/Dockerfile \ 409 | . 410 | docker buildx build \ 411 | --platform 'linux/amd64,linux/arm64' \ 412 | --pull \ 413 | --push \ 414 | --cache-from 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:2.1-alpine3.22' \ 415 | --cache-to 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:2.1-alpine3.22,mode=max' \ 416 | --tag 'localhost:5000/ghcr.io/gui/lua-docker-build-cache:2.1-alpine3.22' \ 417 | --file luajit-2.1/alpine3.22/Dockerfile \ 418 | . 419 | docker buildx build \ 420 | --platform 'linux/amd64,linux/arm64' \ 421 | --pull \ 422 | --push \ 423 | --cache-from 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:2.1-luarocks-alpine3.23' \ 424 | --cache-to 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:2.1-luarocks-alpine3.23,mode=max' \ 425 | --tag 'localhost:5000/ghcr.io/gui/lua-docker-build-cache:2.1-luarocks-alpine3.23' \ 426 | --file luajit-2.1/luarocks-alpine3.23/Dockerfile \ 427 | . 428 | docker buildx build \ 429 | --platform 'linux/amd64,linux/arm64' \ 430 | --pull \ 431 | --push \ 432 | --cache-from 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:2.1-luarocks-alpine3.22' \ 433 | --cache-to 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:2.1-luarocks-alpine3.22,mode=max' \ 434 | --tag 'localhost:5000/ghcr.io/gui/lua-docker-build-cache:2.1-luarocks-alpine3.22' \ 435 | --file luajit-2.1/luarocks-alpine3.22/Dockerfile \ 436 | . 437 | docker buildx build \ 438 | --platform 'linux/amd64,linux/arm64' \ 439 | --pull \ 440 | --push \ 441 | --cache-from 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:2.1-lua52compat-alpine3.23' \ 442 | --cache-to 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:2.1-lua52compat-alpine3.23,mode=max' \ 443 | --tag 'localhost:5000/ghcr.io/gui/lua-docker-build-cache:2.1-lua52compat-alpine3.23' \ 444 | --file luajit-2.1/lua52compat-alpine3.23/Dockerfile \ 445 | . 446 | docker buildx build \ 447 | --platform 'linux/amd64,linux/arm64' \ 448 | --pull \ 449 | --push \ 450 | --cache-from 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:2.1-lua52compat-alpine3.22' \ 451 | --cache-to 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:2.1-lua52compat-alpine3.22,mode=max' \ 452 | --tag 'localhost:5000/ghcr.io/gui/lua-docker-build-cache:2.1-lua52compat-alpine3.22' \ 453 | --file luajit-2.1/lua52compat-alpine3.22/Dockerfile \ 454 | . 455 | docker buildx build \ 456 | --platform 'linux/amd64,linux/arm64' \ 457 | --pull \ 458 | --push \ 459 | --cache-from 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:2.1-lua52compat-luarocks-alpine3.23' \ 460 | --cache-to 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:2.1-lua52compat-luarocks-alpine3.23,mode=max' \ 461 | --tag 'localhost:5000/ghcr.io/gui/lua-docker-build-cache:2.1-lua52compat-luarocks-alpine3.23' \ 462 | --file luajit-2.1/lua52compat-luarocks-alpine3.23/Dockerfile \ 463 | . 464 | docker buildx build \ 465 | --platform 'linux/amd64,linux/arm64' \ 466 | --pull \ 467 | --push \ 468 | --cache-from 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:2.1-lua52compat-luarocks-alpine3.22' \ 469 | --cache-to 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:2.1-lua52compat-luarocks-alpine3.22,mode=max' \ 470 | --tag 'localhost:5000/ghcr.io/gui/lua-docker-build-cache:2.1-lua52compat-luarocks-alpine3.22' \ 471 | --file luajit-2.1/lua52compat-luarocks-alpine3.22/Dockerfile \ 472 | . 473 | docker buildx build \ 474 | --platform 'linux/amd64,linux/arm64' \ 475 | --pull \ 476 | --push \ 477 | --cache-from 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:2.1-rolling' \ 478 | --cache-to 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:2.1-rolling,mode=max' \ 479 | --tag 'localhost:5000/ghcr.io/gui/lua-docker-build-cache:2.1-rolling' \ 480 | --file luajit-2.1/rolling/Dockerfile \ 481 | . 482 | docker buildx build \ 483 | --platform 'linux/amd64,linux/arm64' \ 484 | --pull \ 485 | --push \ 486 | --cache-from 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:2.1-plucky' \ 487 | --cache-to 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:2.1-plucky,mode=max' \ 488 | --tag 'localhost:5000/ghcr.io/gui/lua-docker-build-cache:2.1-plucky' \ 489 | --file luajit-2.1/plucky/Dockerfile \ 490 | . 491 | docker buildx build \ 492 | --platform 'linux/amd64,linux/arm64' \ 493 | --pull \ 494 | --push \ 495 | --cache-from 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:2.1-luarocks-rolling' \ 496 | --cache-to 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:2.1-luarocks-rolling,mode=max' \ 497 | --tag 'localhost:5000/ghcr.io/gui/lua-docker-build-cache:2.1-luarocks-rolling' \ 498 | --file luajit-2.1/luarocks-rolling/Dockerfile \ 499 | . 500 | docker buildx build \ 501 | --platform 'linux/amd64,linux/arm64' \ 502 | --pull \ 503 | --push \ 504 | --cache-from 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:2.1-luarocks-plucky' \ 505 | --cache-to 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:2.1-luarocks-plucky,mode=max' \ 506 | --tag 'localhost:5000/ghcr.io/gui/lua-docker-build-cache:2.1-luarocks-plucky' \ 507 | --file luajit-2.1/luarocks-plucky/Dockerfile \ 508 | . 509 | docker buildx build \ 510 | --platform 'linux/amd64,linux/arm64' \ 511 | --pull \ 512 | --push \ 513 | --cache-from 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:2.1-lua52compat-rolling' \ 514 | --cache-to 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:2.1-lua52compat-rolling,mode=max' \ 515 | --tag 'localhost:5000/ghcr.io/gui/lua-docker-build-cache:2.1-lua52compat-rolling' \ 516 | --file luajit-2.1/lua52compat-rolling/Dockerfile \ 517 | . 518 | docker buildx build \ 519 | --platform 'linux/amd64,linux/arm64' \ 520 | --pull \ 521 | --push \ 522 | --cache-from 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:2.1-lua52compat-plucky' \ 523 | --cache-to 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:2.1-lua52compat-plucky,mode=max' \ 524 | --tag 'localhost:5000/ghcr.io/gui/lua-docker-build-cache:2.1-lua52compat-plucky' \ 525 | --file luajit-2.1/lua52compat-plucky/Dockerfile \ 526 | . 527 | docker buildx build \ 528 | --platform 'linux/amd64,linux/arm64' \ 529 | --pull \ 530 | --push \ 531 | --cache-from 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:2.1-lua52compat-luarocks-rolling' \ 532 | --cache-to 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:2.1-lua52compat-luarocks-rolling,mode=max' \ 533 | --tag 'localhost:5000/ghcr.io/gui/lua-docker-build-cache:2.1-lua52compat-luarocks-rolling' \ 534 | --file luajit-2.1/lua52compat-luarocks-rolling/Dockerfile \ 535 | . 536 | docker buildx build \ 537 | --platform 'linux/amd64,linux/arm64' \ 538 | --pull \ 539 | --push \ 540 | --cache-from 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:2.1-lua52compat-luarocks-plucky' \ 541 | --cache-to 'type=registry,ref=ghcr.io/gui/lua-docker-build-cache:2.1-lua52compat-luarocks-plucky,mode=max' \ 542 | --tag 'localhost:5000/ghcr.io/gui/lua-docker-build-cache:2.1-lua52compat-luarocks-plucky' \ 543 | --file luajit-2.1/lua52compat-luarocks-plucky/Dockerfile \ 544 | . 545 | --------------------------------------------------------------------------------