apt-key недавно не работает внутри докера

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

Warning: apt-key output should not be parsed (stdout is not a terminal)
Executing: /tmp/apt-key-gpghome.jZsMrv3GZH/gpg.1.sh --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
mgpg: cannot open '/dev/tty': No such device or address

Когда я вызываю команды apt-key, такие как эти:

apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF

Я мог бы использовать apt с ненадежной опцией, чтобы мне вообще не понадобился ключ, но это звучит как грязное решение.

При непосредственном использовании gpg я, вероятно, мог бы использовать параметры --no-tty или --batch, чтобы исправить это, но каков довольно чистый способ сделать это с помощью команды apt-key, которая является оболочкой для pgp?

1 ответ

Я думаю, что получил его, по крайней мере, пока GPG или APT-KEY не будут исправлены, я мог бы использовать этот обходной путь, который действительно изменяет сценарий apt-key на месте.

Для более подходящего apt-key это будет работать, быстро протестировано на debian:

sed -i "s%{GPG_EXE}\")' --%{GPG_EXE}\")' --batch --%g" /usr/bin/apt-key

Хотя для базового apt-ключа это может сработать (не проверено, так как я не могу вспомнить, где именно я видел этот более простой вариант):

sed -i 's%GPG_CMD="gpg %GPG_CMD="gpg --batch %g' /usr/bin/apt-key

Вам нужны привилегии для записи в /usr/bin/apt-key, чтобы они запускались от имени пользователя root или использовали sudo

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