2016-08-10 2 views
0

이것은 내 디렉토리 구조 for docker microservices입니다. 내가해야 할 일은 내 호스트 컴퓨터에있는 lib 폴더의 특정 파일을 컨테이너에 공유하는 것입니다. 이들은 containers.This 모두에서 응용 프로그램을 실행하는 데 필요한 라이브러리 파일여러 개의 도커 컨테이너간에 호스트 디렉토리를 공유하는 방법은 무엇입니까?

FROM alpine:3.3 

RUN apk add --update nodejs 

RUN mkdir -p /usr/src/app 
WORKDIR /usr/src/app 

COPY . /usr/src/app 
RUN npm install 

EXPOSE 3000 

WORKDIR /usr/src/app 
CMD node index.js 

내가이 명령을 사용하여 고정 표시기 이미지를 구축 컨테이너 propinfo 측정기 중 하나 안에 내 고정 표시기 파일 중 하나의 내용이되어 있습니다 docker build -t nodeapp/premcal . 빌드 프로세스가 성공적입니다. 그리고 내가 그것을 bin 폴더가 I이 오류

module.js:328 
 
    throw err; 
 
    ^
 

 
Error: Cannot find module '/usr/src/app/index.js' 
 
    at Function.Module._resolveFilename (module.js:326:15) 
 
    at Function.Module._load (module.js:277:25) 
 
    at Function.Module.runMain (module.js:442:10) 
 
    at startup (node.js:136:18) 
 
    at node.js:966:3
을 얻고 그것을 실행 한 후

docker run -v $PWD/lib:/usr/src/app -p 3010:3000 -i nodeapp/premcal

에 위치해 상위 디렉토리에서 을 실행하기 위해 컨테이너에 디렉토리 bin 마운트/매핑이 명령을 사용하여

호스트는 물리적 인 우분투 시스템입니다.

누구든지이 문제를 해결할 수있는 방법을 알려주십시오. 내가 가지고있는 것은 node.js와 docker 환경에 2 시간의 경험을 쌓은 것입니다. 감사합니다.

+0

당신이 실행하려는 excatly 자바 스크립트 파일을 어떤 목적이 명확 해주십시오. 이미지의'/ usr/src/app' 폴더를 그 디렉토리에 마운트 한 내용으로 덮어 쓰는 것 같습니다. 'index.js'는 어디에서 왔습니까? –

답변

0

저는 node.js의 전문가는 아니지만 index.js를 실행하려고하지만 lib 폴더 내에 index.js가 없습니다.

docker run -v $PWD/lib:/usr/src/app -p 3010:3000 -i \ 
    davesrepo/dynamo node disco.js 
0

실행 docker run -v $PWD/lib:/usr/src/app -p 3010:3000 -i davesrepo/dynamo bash하고는/usr/src에/응용 프로그램 deriectory를 살펴 : 당신이 disco.js을 실행하고 싶었다면, 그 것이다.

lib 폴더를 성공적으로 마운트하지 않았거나 사용 권한 오류가있는 것 같습니다.

0

당신은 데이터 전용 용기를 사용하여 여러 개의 컨테이너 사이에 디렉토리를 공유 할 수 있습니다.

here, here 또는 그 이상인 here을 찾을 수 있습니다.

관련 문제