더북(TheBook)

4.3 애플리케이션 빌드 실전 예제: Node.js 소스 코드

멀티 스테이지 빌드가 적용된 Dockerfile 스크립트를 한 가지 더 살펴보자. 이번에는 Node.js 애플리케이션을 빌드하는 스크립트다. 최근에는 조직의 기술 스택이 점점 다양해지는 만큼, 도커를 이용한 서로 다른 빌드 방식을 살펴보는 것도 도움이 될 것이다. Node.js는 자바와는 다른 스크립트 언어이며 많이 채택되는 기술이라는 점에서 딱 좋은 예제라고 할 수 있다. 이 빌드 패턴 역시 파이썬, PHP, 루비 등 여타 스크립트 언어에 그대로 적용 가능하다. 이 애플리케이션의 소스 코드는 예제 코드 내 경로 ch04/exercises/access-log에서 볼 수 있다.

자바 애플리케이션은 컴파일을 거쳐야 하기 때문에 빌드 단계에서 소스 코드를 복사한 다음 패키징 과정을 통해 JAR 파일을 생성했었다. JAR 파일은 컴파일된 애플리케이션을 담은 파일로 이 파일이 다시 최종 애플리케이션 이미지에 복사되며 소스 코드는 여기에 포함되지 않는다. 닷넷 코어 역시 마찬가지다. 컴파일된 바이너리는 DLL(dynamic link library) 포맷이다. 그러나 Node.js는 이와는 조금 다르다. Node.js 애플리케이션은 자바스크립트로 구현된다. 자바스크립트는 인터프리터형 언어로 별도의 컴파일 절차가 필요 없다. 컨테이너화된 Node.js 애플리케이션을 실행하려면 Node.js 런타임과 소스 코드가 애플리케이션 이미지에 포함돼야 한다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.