Небезопасная зависимость в chdir при работе с ключом -T при работе в контейнере докеров

Я использую module-starter для создания модуля CPAN. Он автоматически создает некоторые тесты

$ ls t/
00-load.t  manifest.t  pod-coverage.t  pod.t

с shebang #!perl -T, поэтому тесты выполняются в режиме taint. Он отлично работает на моем ноутбуке с Ubuntu 20.04 (без сбоев тестов), но когда я запускаю те же тесты в контейнере Docker с Ubuntu 20.04, а также использую модуль Alien::GSL Я получаю сообщение об ошибке:

$ perl -T -I./lib t/00-load.t 
not ok 1 - use My::Module;
#   Failed test 'use My::Module;'
#   at t/00-load.t line 10.
#     Tried to use 'My::Module'.
#     Error:  Insecure dependency in chdir while running with -T switch at /home/hakond/perl5/perlbrew/perls/perl-5.32.0/lib/5.32.0/File/Find.pm line 375.
# BEGIN failed--compilation aborted at lib/My/Module.pm line 7.
# Compilation failed in require at t/00-load.t line 10.
# BEGIN failed--compilation aborted at t/00-load.t line 10.

Ошибку можно создать проще (в контейнере Docker):

$ perl -T -MAlien::GSL -e1
Insecure dependency in chdir while running with -T switch at /home/hakond/perl5/perlbrew/perls/perl-5.32.0/lib/5.32.0/File/Find.pm line 375.
BEGIN failed--compilation aborted.

приведенные выше команды работают нормально (без ошибок) на моем ноутбуке.

Есть идеи, что происходит?


person Håkon Hægland    schedule 30.07.2020    source источник


Ответы (1)


Разница между поведением в докер-контейнере и на ноутбуке, по-видимому, связана с тем, что libgsl-dev установлен на моем ноутбуке.

Согласно этой проблеме, режим taint в любом случае не должен быть включен по умолчанию.

person Håkon Hægland    schedule 30.07.2020