Последний образ докера alpine не загружает / etc / profile при запуске. См. Пример, когда он запускается без загруженного / etc / profile и когда я его загружаю.
[13:12]~$docker run --rm -it alpine
/ # . /etc/profile
ed2318ad9ac7:/#
Как я могу заставить его автоматически загружать / etc / profile при запуске?
source
не поддерживается командой/bin/sh
. Альтернативой, совместимой с POSIX, является команда точка, как в. /etc/profile
. - person Charles Duffy   schedule 19.02.2018/bin/sh
, а не bash, прямо здесь в вопросе OP, в ошибке, указывающей, что это/bin/sh -c '...'
не работает. (Я предполагаю, что они установили bash, поэтомуdocker run
дает им оболочку, в которой доступенsource
). - person Charles Duffy   schedule 19.02.2018sh
-vs-bash
,RUN "source /etc/profile"
не имеет смысла, потому что каждая командаRUN
вызывается с отдельной оболочкой, и получение чего-либо в одной оболочке не изменит, как впоследствии -вызванные оболочки ведут себя (если только то, что вы делаете, не устанавливает состояние оболочки, а фактически изменяет постоянное содержимое на диске, и в этом случае нет никакого смысла использоватьsource
или.
). - person Charles Duffy   schedule 19.02.2018build
обрабатывает переменные среды. - person ldg   schedule 19.02.2018