용기 :고궁 박물원 명령을 내 NodeJS에 고정 표시기를 찾을 수없는 나는 도커 이미지 생성
$ docker build -t stephaneeybert/nodejs .
Sending build context to Docker daemon 2.56 kB
Step 1 : FROM debian
---> 1b088884749b
Step 2 : RUN apt-get clean && apt-get update
---> Using cache
---> b12133d6342f
Step 3 : RUN apt-get install -y curl
---> Using cache
---> 22dfb4882b12
Step 4 : RUN curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.32.1/install.sh | bash
---> Using cache
---> 27f2fac45254
Step 5 : RUN . ~/.nvm/nvm.sh; nvm install stable
---> Using cache
---> 20d99d545755
Step 6 : RUN . ~/.nvm/nvm.sh; nvm use stable
---> Using cache
---> 9ec14efb2407
Step 7 : RUN . ~/.nvm/nvm.sh; npm install -g npm
---> Using cache
---> d264d38565f3
Step 8 : EXPOSE 9001
---> Using cache
---> 29e3589557e1
Step 9 : ENTRYPOINT /usr/bin/tail -f /dev/null
---> Using cache
---> 2ce499300fe1
Successfully built 2ce499300fe1
이미지 스크립트입니다 : 다음
FROM debian
RUN apt-get clean && apt-get update
RUN apt-get install -y curl
# Installing nodesjs
RUN curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.32.1/install.sh | bash
RUN . ~/.nvm/nvm.sh; nvm install stable
RUN . ~/.nvm/nvm.sh; nvm use stable
RUN . ~/.nvm/nvm.sh; npm install -g npm
EXPOSE 9001
ENTRYPOINT ["/usr/bin/tail", "-f", "/dev/null"]
내가 용기를 실행하고 bash 쉘을 엽니 다
,369 : 일단 거기에$ docker run -d -p 127.0.0.1:9001:9001 --name nodejs stephaneeybert/nodejs
c6dddf0a5eb0f11c897f63910eb01f2868fe0f39a80e5e2a580ef3a82935b27b
[[email protected] nodejs]
$ docker exec -it nodejs bash
[email protected]:/#
, 내가 버전을 얻을려고
[email protected]:/# npm -v
bash: npm: command not found
하지만 npm을 찾을 수 없습니다. '비 존재하지 않는 노드 버전에 대한 별칭이 이해 N/A: version "N/A" is not yet installed.
: 대화 형 쉘에서 명령 nvm use stable
를 입력 할 때
, 그것은 다음과 같은 오류를 제공합니다.
nvm ls
명령을 보여줍니다
[email protected]:/# nvm ls
N/A
node -> stable (-> N/A) (default)
iojs -> N/A (default)
디버거는이 보여줄 수있다 :
[email protected]:/# nvm debug
nvm --version: v0.32.1
$SHELL: /bin/bash
$HOME: /root
$NVM_DIR: '$HOME/.nvm'
$PREFIX: ''
$NPM_CONFIG_PREFIX: ''
nvm current: none
which node:
which iojs:
which npm:
npm config get prefix: bash: npm: command not found
npm root -g: bash: npm: command not found
1 어떻게 각 명령에이 스크립트 . ~/.nvm/nvm.sh;
소스 필요가 올?
2 노드 패키지 관리자가 bash 쉘에없는 이유는 무엇입니까?
편집 : 나는 약간에게 Dockerfile 파일의 내용 변경 :
RUN curl -o-https://raw.githubusercontent.com/creationix/nvm/v0.32.1/install.sh | bash \
&& . ~/.nvm/nvm.sh \
&& nvm install stable \
&& nvm alias default stable \
&& nvm use default
을 그리고 지금을 구축하는 것은이 보여줍니다
Step 4 :RUN curl -o https://raw.githubusercontent.com/creationix/nvm/v0.32.1/install.sh | bash && . ~/.nvm/nvm.sh && nvm install stable && nvm alias default stable && nvm use default
---> Running in 7d2c404135dd
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 10250 100 10250 0 0 18258 0 --:--:-- --:--:-- --:--:-- 18238
=> Downloading nvm as script to '/root/.nvm'
=> Appending source string to /root/.bashrc
=> Close and reopen your terminal to start using nvm or run the following to use it now:
export NVM_DIR="/root/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm
######################################################################## 100.0%
Computing checksum with sha256sum
Checksums matched!
Now using node v7.2.0 (npm v3.10.9)
Creating default alias: default -> stable (-> v7.2.0 *)
default -> stable (-> v7.2.0 *)
Now using node v7.2.0 (npm v3.10.9)
---> ad960a4addbe
Removing intermediate container 7d2c404135dd
Step 5 : EXPOSE 9001
---> Running in df9284421302
---> 14d386f009fb
Removing intermediate container df9284421302
Step 6 : ENTRYPOINT /usr/bin/tail -f /dev/null
---> Running in fa2d71b6dfdf
---> d02c8e88eb7f
Removing intermediate container fa2d71b6dfdf
Successfully built d02c8e88eb7f
가 나는 그것이 노드 v7.2.0 설치 볼 수 있습니다 및 사용 그것.
하지만 명령 docker exec -it nodejs bash
와 용기에 로그인 할 때 그것은 어디서나 모든 노드를 참조하지 않습니다 내가 노드를 설치하는 방법을 변경하고 nvm
도구없이 한
[email protected]:/# nvm --version
0.32.1
[email protected]:/# npm --version
bash: npm: command not found
[email protected]:/# echo $NVM_DIR
/root/.nvm
[email protected]:/# ls -l /root/.nvm
total 100
-rwxr-xr-x 1 root root 313 Nov 26 13:01 nvm-exec
-rw-r--r-- 1 root root 95660 Nov 26 13:01 nvm.sh
[email protected]:/# ls -l /root/.npm
ls: cannot access /root/.npm: No such file or directory
거기에 있습니다 : ./root/.npm/npm – Stephane
Hav npm -v 이전에 "nvm use stable"명령을 실행하려고 했습니까? 다른 질문 : 노드의 공식 도커 이미지를 사용하지 않는 이유는 무엇입니까? –
보시다시피,'nvm use stable' 명령은 스크립트의 일부분이며 잘 실행되었습니다. 그러나 대화 형 쉘에 입력 할 때 다음 오류가 발생합니다. '해당 없음 : 버전 "해당 사항 없음"이 아직 설치되지 않았습니다.' – Stephane