Модуль Powershell не загружается автоматически для контейнера Linux

#linux #powershell #containers #docker-container

Вопрос:

У меня есть модуль Powershell, который выглядит так::

 function SayHello
{
    echo "hello"
}
 

Я сохранил его как say-hello.psm1 и добавил в файл dockerfile, как это:

 COPY --chmod=0755 say-hello.psm1 /root/.local/share/powershell/Modules/say-hello.psm1
 

Когда я запускаю изображение docker и запускаю SayHello его, оно сообщает мне, что не может найти команду:

СайХелло не узнал

Но если я затем выполню команду Import-Module и повторю попытку, это сработает:

Может работать, если импортировать вручную

Я подумал, что, может быть, я ошибся папкой, но когда я бегу $Env:PSModulePath , я получаю /root/.local/share/powershell/Modules:/usr/local/share/powershell/Modules:/opt/microsoft/powershell/7/Modules . Согласно документации, именно туда должны идти модули. (Я вставил его в первый)

Что мне нужно сделать, чтобы мой модуль powershell работал без необходимости импорта вручную?

Ответ №1:

Я забыл, что вам нужно поместить psm1 файл в папку с тем же именем, что и файл (внутри папки Модулей).

Я сделал это, и это начало работать просто отлично.