Как вручную установить зависимость 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-контейнере, который я успешно собрал локально, я попытался:
- Найдите все файлы для с
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
- Скопируйте их
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/
- Скопируйте их в 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
? Какие файлы нужны для кэша?