Отвечая на мой собственный вопрос после бесконечных поисков в сети. 2 вещи, на которые нужно обратить внимание / изменить:
- Нам также нужно установить версию узла по умолчанию (внутри скрипта оболочки). К сожалению, я не знаю, почему необходимо установить его по умолчанию, чтобы он оставался постоянным, но он просто работает (если кто-нибудь может это объяснить, пожалуйста, сделайте это). Итак, точка входа. sh выглядит так:
#!/bin/bash
source root/.nvm/nvm.sh && nvm use "$@" && nvm alias default "$@"
node --version
exec /usr/sbin/init
при запуске bash с
docker exec -it <container_id> /bin/sh -c "node --version"
, а не в интерактивном режиме или при входе в оболочку, он не будет читать сценарии запуска, поэтому версия узла, установленная с помощью
source /root/.nvm/nvm.sh
и
nvm use XXX
, не красного цвета, и поэтому не изменилась "для этой конкретной c bash сессии. Решение состоит в том, чтобы войти в контейнер и запустить
node --version
изнутри ИЛИ source nvm. sh, а также до запуска node --version, например
docker exec -it <container_id> sh -c "source /root/.nvm/nvm.sh && node --version"
Надеюсь, что это поможет любому, кто сталкивался с та же проблема.