में बैश समारोह को चलाने के लिए कैसे मैं एक पार्टी समारोह nvm
/root/.profile
में परिभाषित किया गया है। docker build
कि समारोह को खोजने के लिए जब मैं RUN
चरण में इसे कहते विफल रहा है।Dockerfile
RUN apt-get install -y curl build-essential libssl-dev && \
curl https://raw.githubusercontent.com/creationix/nvm/v0.16.1/install.sh | sh
RUN nvm install 0.12 && \
nvm alias default 0.12 && \
nvm use 0.12
त्रुटि
Step 5 : RUN nvm install 0.12
---> Running in b639c2bf60c0
/bin/sh: nvm: command not found
मैं bash -ic
साथ यह लपेटकर द्वारा nvm
कॉल करने के लिए है, जो /root/.profile
लोड होगा कामयाब रहे है।
RUN bash -ic "nvm install 0.12" && \
bash -ic "nvm alias default 0.12" && \
bash -ic "nvm use 0.12"
उपरोक्त विधि ठीक काम करता है, लेकिन यह एक चेतावनी
bash: cannot set terminal process group (1): Inappropriate ioctl for device
bash: no job control in this shell
है और मैं जानना चाहता हूँ वहाँ एक आसान और क्लीनर रास्ता बिना bash -ic
बैश समारोह यह सामान्य द्विआधारी है सीधे रूप में कॉल करने के लिए है रैपिंग?
RUN load_functions && \
nvm install 0.12 && \
nvm alias default 0.12 && \
nvm use 0.12
'भागो बैश -c 'nvm 0.12 && nvm उर्फ डिफ़ॉल्ट स्थापित 0.12 && nvm उपयोग 0.12'' चाल करना चाहिए। क्या यह आपके लिए काम करता है? (मैं 100% यकीन है कि क्योंकि मैं नहीं जानता कि कैसे अपने कंटेनर में विस्तार से विचार कर रही है नहीं कर रहा हूँ) – hek2mgl
यह ठीक काम करता है। लेकिन मैं एक बेहतर समाधान की तलाश में हूं। – Quanlong
ठीक है, मेरा जवाब जांचें। एक खोल स्क्रिप्ट इसे करने का सबसे साफ तरीका है। – hek2mgl