В общем, когда вы создаете образ Docker, все в порядке, чтобы установить вещи в обычные «системные» каталоги.Все, что вы строите, будет изолировано внутри изображения, и оно не может конфликтовать с другими инструментами.
Самый простой ответ на ваш ближайший вопрос состоит в том, чтобы расположить вещи так, чтобы вам не нужно было устанавливать $PATH
.
В приведенном вами примере вы можете безопасно использовать каталог установки Autoconf по умолчанию /usr/local
.Это почти наверняка будет пустым, когда вы начнете сборку образа, и там будут только те вещи, которые вы устанавливаете.
RUN ... \
&& ./configure \
&& make \
&& make install
(Следствие Python - не создавать виртуальную среду для вашего приложения; просто используйте систему pip
чтобы установить вещи в каталоги библиотеки Python по умолчанию.)
Не ожидайте, что будет домашний каталог.Если вам нужно установить приложение в нестандартном месте, /app
является обычным, а /opt/whatever
соответствует практике, не связанной с Docker Linux.Избегайте $HOME
или ~
, они, как правило, не очень четко определены в Docker (если вы не сделаете из них все возможное, чтобы заставить их быть).