Ошибка :«команда '/bin/sh -c source protected -env/bin/activate' вернула не -нулевой код :127», пока я пытаюсь настроить мой первый докерфайл

Ubuntu — это дистрибутив , а не «Linux».

В общем, все программы, созданные для Linux, можно заставить работать во всех дистрибутивах. Однако вам, возможно, придется скомпилировать их для себя из исходного кода.

Дистрибутивы делают эту работу за вас. :Они уже скомпилировали программу в какой-то двоичный пакет, и вы можете просто установить этот пакет с помощью менеджера пакетов, который входит в ваш дистрибутив.

Поскольку пакеты обычно зависят от других пакетов, заставить пакет из другого дистрибутива работать в совершенно другом дистрибутиве может быть сложно.

Тем не менее, есть дистрибутивы, которые тесно связаны между собой, используют один и тот же менеджер пакетов и часто содержат множество идентичных пакетов, (например. Дистрибутивы на основе Debian -, такие как Ubuntu ). Для тех это может работать (, но не всегда ).

В общем, вы либо проверяете, доступна ли эта программа в вашем дистрибутиве, либо компилируете ее самостоятельно.

0
03.05.2021, 17:26
1 ответ
RUN source protected-env/bin/activate

не имеет смысла.

activate— это скрипт, который устанавливает несколько переменных окружения для текущей оболочки ; однако текущая оболочка умирает сразу после получения этого файла. Таким образом, это не имеет никакого эффекта. Особенно это не влияет на следующую строку!

Ваша ошибка, однако, связана с тем, что вы пытаетесь запустить скрипт ba sh с помощью sh, который не работает. Решение здесь состоит в том, чтобы поместить все эти вещи (из источника файла активации, установить вещи с помощью pip )в один сценарий оболочки, который начинается с #!/bin/bash, чтобы его можно было выполнить за один раз, а затем COPYвставьте его в образ контейнера, а затем RUNзагрузите его.

Тем не менее, я еще не сталкивался с причиной для установки numpy через pip. Возможно, вам не следует этого делать, а установите его с помощью apt!

То же и даже в большей степени относится к самому python. Не создавайте это из исходников — я не знаю, откуда взялось ваше руководство, но серьезно, это ужасная идея. Ваша Ubuntu поставляется с Python3, скорее всего, даже предустановленным или устанавливаемым как apt install python3, готово! В общем, вы просто добавили python3-numpyв конец списка пакетов для установки, и все готово; не загружать python, не создавать его и, конечно же, не нужно искать какой-либо файл активации и устанавливать numpy через pip!

0
28.07.2021, 11:35

Теги

Похожие вопросы