2017-10-20 17 views
0

je suit dans mon Dockerfile:Docker, en cours d'exécution script NVM shell dans une nouvelle bash

run apt-get update; \ 
    apt-get install -y curl && \ 
    curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.5/install.sh | bash 

En suivant cette ligne de code, je dois exécuter une commande dans un nouveau shell bash pour que la variable d'environnement défini à partir du script NVM sont utilisés.

J'ai fatigué ce qui suit pour installer NodeJS et il ne fonctionne pas:

run ["/bin/bash", "-c", "nvm install 8.7.0"] 

Que puis-je faire?

Répondre

0

Il est préférable d'utiliser un dépôt Dockerhub et de l'utiliser dans votre Dockerfile.

Vous pouvez vérifier cette repositorie ou cette link pour plus de dépôts, s'il vous plaît lire la description avant de choisir un dépôt. Ainsi, par exemple, vous pouvez ajouter la ligne de code ci-dessous dans votre Dockerfile, il va extraire l'image nvm et l'installer puis ajouter les instructions de votre application.

FROM livingdocs/nvm 

Ou vous pouvez lire leur Dockerfile et utiliser la commande ils l'ont utilisé pour installer NVM

ADD ./.nvmrc /app/.nvmrc 
RUN bash -c '. /usr/share/nvm/nvm.sh && cd /app && nvm install && nvm alias default' 

si elle n'a pas mis celui-ci d'une autre repositorie:

RUN sudo apt-get update && \ 
    sudo apt-get install -y build-essential libssl-dev libmysqlclient-dev && \ 
    sudo apt-get clean && \ 
    sudo rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* 

RUN curl --location https://raw.github.com/creationix/nvm/master/install.sh | sh && \ 
    sudo /bin/bash -c "echo \"[[ -s \$HOME/.nvm/nvm.sh ]] && . \$HOME/.nvm/nvm.sh\" >> /etc/profile.d/npm.sh" && \ 
    echo "[[ -s $HOME/.nvm/nvm.sh ]] && . $HOME/.nvm/nvm.sh" >> $HOME/.bashrc