Я пытаюсь подготовить образ докера, чтобы ускорить процесс сборки и избежать установки различных инструментов и библиотек при каждой сборке, мой базовый образ будет содержать его, а затем я буду использовать его со всеми установленными мне необходимыми вещами.
Итак, проблема в том, что я пытаюсь установить узел из NVM (Node Version Manager), но после установки я не могу использовать ни команду nvm
, ни npm
.
Мой базовый образis golang: 1.13.1, и я делаю следующее:
RUN curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.34.0/install.sh | bash
Затем среди уроков я увидел, что ~/.nvm/nvm.sh
должен быть запущен, чтобы закончить работу, как показано ниже
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
Я немного его изменил, потому что мой образ докера не распознает несколько команд из-за разных оболочек.
Но когда я делаю два отдельных RUN
, второй больше не видит NVM_DIR
.Конечно, я могу сделать все за один RUN
, но мне нужно иметь npm
позже, чтобы каждый RUN
мог видеть эту команду.
Также я попытался экспортировать NVM_DIR
но он все равно не работает, даже когда я перезагружаюсь с . ~/.bashrc
.
Смысл наличия NVM в том, что я не хочу заботиться о версии узла.Каждая сборка будет LTS-версией, и это нормально для меня.
Приветствуется совместное использование вашего решения или совета.Заранее спасибо