Ubuntu — это дистрибутив , а не «Linux».
В общем, все программы, созданные для Linux, можно заставить работать во всех дистрибутивах. Однако вам, возможно, придется скомпилировать их для себя из исходного кода.
Дистрибутивы делают эту работу за вас. :Они уже скомпилировали программу в какой-то двоичный пакет, и вы можете просто установить этот пакет с помощью менеджера пакетов, который входит в ваш дистрибутив.
Поскольку пакеты обычно зависят от других пакетов, заставить пакет из другого дистрибутива работать в совершенно другом дистрибутиве может быть сложно.
Тем не менее, есть дистрибутивы, которые тесно связаны между собой, используют один и тот же менеджер пакетов и часто содержат множество идентичных пакетов, (например. Дистрибутивы на основе Debian -, такие как Ubuntu ). Для тех это может работать (, но не всегда ).
В общем, вы либо проверяете, доступна ли эта программа в вашем дистрибутиве, либо компилируете ее самостоятельно.
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!