도커를 이용한 Node.js 어플(Docker with Node.js App)
Docker with Node.js App
예제 Node.js
Node.js 생성.
npm init : package.json 생성.
Dokcerfile 생성.
위코드로 Docker build 에러 발생.
COPY package.json ./ 을 추가하여 package파일을 복사한다.
docker build -t mingeon/nodejs ./
다시 또 Error 발생. server.js 가 위치하지 않는 Error
Build 성공 But loaclhost:8080 접속 불가.
container에 접근하기 위한 설정.
local file을 복사한 것과 같이 network도 연결을 해주어야 한다.
Port mapping이 필요.
docker run -p 5000:8080 mingeon/nodejs 를 통해 실행.
Working Directory
Woking Directory
이미지안에서 app 소스 코드를 가지고 있을 디렉토리.
WorkDir를 설정하지 않는 경우
파일이름이 중복일 경우. (기존 파일이 덮어 씌워진다.)
난잡하다.
재빌드 후 실행.
docker build -t mingeon/nodejs ./
docker run -it mingeon/nodejs sh
WorkDir 설정을 하는 경우, container 접속시 WorkDir이 첫화면이다.
어플리케이션 소스 변경으로 재빌드하는 문제
재빌드 효율적으로 하는 법
npm insatll을 실행 할때 cache를 사용하기 위한 전략.
종속성을 먼저 복사하여 package.json의 변화가 없는 경우,
도커 내부의 캐시를 통해 종속성 다운로드의 중복 피할 수 있다.
Docker Volume
node_modules = 종속성 다운로드 dir
vscode powerShell 환경 : $(pwd) ->${pwd}
re-build 없이 매핑된 파일의 변경으로 적용.
-> docker restart를 통해 재실행 해주어야 한다.
Last updated