Как вручную установить зависимость Lua в Debian

В докер-контейнере на основеdebian:bullseye-slimМне нужно вручную добавить пакет lua, так как github или luarocks заблокированы прокси компании.

В настоящее время я пытаюсь установить апиклиент в контейнере Docker с помощью

      RUN set luarocks make apiclient-2.6.0-2.rockspec

Вот что я получаю на сервере сборки нашей компании:

      luarocks make apiclient-2.6.0-2.rockspec
Missing dependencies for apiclient 2.6.0-2:
   lua-resty-openidc ~> 1.7.6 (not installed)

apiclient 2.6.0-2 depends on lua ~> 5.1 (5.1-1 provided by VM)
apiclient 2.6.0-2 depends on lua-resty-openidc ~> 1.7.6 (not installed)
Warning: Failed searching manifest: Failed downloading https://luarocks.org/manifest-5.1 - failed downloading https://luarocks.org/manifest-5.1
...
Error: Could not satisfy dependency lua-resty-openidc ~> 1.7.6: No results matching query were found for Lua 5.1.

Я могу собрать Docker-контейнер локально на своем MacBook, поскольку он не так ограничен, как сервер сборки. Итак, в Docker-контейнере, который я успешно собрал локально, я попытался:

  1. Найдите все файлы для сgrep -rl openidc /
      $ grep -rl openidc /
...
/usr/local/share/lua/5.1/kong/plugins/apiclient/access.lua
/usr/local/share/lua/5.1/resty/openidc.lua
/usr/local/share/lua/5.1/resty/openidc.lua~
/usr/local/lib/luarocks/rocks-5.1/manifest
/usr/local/lib/luarocks/rocks-5.1/lua-resty-openidc/1.7.6-3/doc/RELEASE.md
/usr/local/lib/luarocks/rocks-5.1/lua-resty-openidc/1.7.6-3/doc/README.md
/usr/local/lib/luarocks/rocks-5.1/lua-resty-openidc/1.7.6-3/rock_manifest
/usr/local/lib/luarocks/rocks-5.1/lua-resty-openidc/1.7.6-3/lua-resty-openidc-1.7.6-3.rockspec
/usr/local/lib/luarocks/rocks-5.1/lua-resty-jwt/0.2.3-0/doc/README.md
/usr/local/lib/luarocks/rocks-5.1/apiclient/2.6.0-2/apiclient-2.6.0-2.rockspec
  1. Скопируйте их
      docker cp locally-built-container:/usr/local/share/lua/5.1/resty/openidc.lua plugins/
docker cp locally-built-container:/usr/local/lib/luarocks/rocks-5.1/lua-resty-openidc plugins/
  1. Скопируйте их в Docker-контейнер при сборке:
      COPY ./plugins/openidc.lua /usr/local/share/lua/5.1/resty/openidc.lua
COPY ./plugins/lua-resty-openidc /usr/local/lib/luarocks/rocks-5.1/
...
RUN luarocks make apiclient-2.6.0-2.rockspec

Однако при сборке Docker-контейнера на сервере сборки lua все равно пытается загрузить его через Интернет.

Как я могу полностью вручную установитьlua-resty-openidc- какие файлы еще нужны?

Или можно как-то обмануть luarocks, чтобы использовать локальный кеш/root/.cache/luarocks? Какие файлы нужны для кэша?

0 ответов

Другие вопросы по тегам