개발일지/Docker

리액트를 위한 도커 파일 작성하기

꾸주니=^= 2025. 1. 13. 18:36

도커로 어플을 실행하기 위해서는 ...

 

현재까지는 Dockerfile을 한 가지만 만들었지만 실제로는 Dockerfile을 개발 단계를 위한 것과,
실제 배포 후를 위한 것을 따로 작성하는게 좋습니다.


그러므로 개발단계를 위해서 Dockerfile이 아닌 Dockerfile.dev라는 파일을 작성해보겠습니다.

위 그림은 리액트를 위한 도커파일입니다. 

- from은 베이스 이미지를 가져오는 것입니다. 이번에는 node(이미지), 16(버전)의 alpine을 사용할 것입니다.
- workdir은 컨테이너 안에서 우리가 앱을 시작하는데, 컨테이너 안에 어떠한 경로에 리액트를 위한 경로를 넣어줄건지에 대한 것입니다.
자기가 원하는 경로를 적어주면 됩니다.
- copy라는 지지자를 이용해서 package.json을 컨테이너 안에 복사를 해줍니다.
- run으로 npm install을 해줍니다. 컨테이너안에 node모듈 라이브러리가 설치됩니다.
- copy는 전체 모듈들을 컨테이너 안에 복사해줍니다.

 

왜 이번에는 alpine 베이스 이미지가 아닌, node 이미지를 사용할까요?

 

먼저, 베이스 이미지를 alpine으로 해서 build를 해보겠습니다.

위처럼  할 경우, npm not found라는 에러가 나옵니다.
그 이유는 alpine 이미지는 가장 최소한의 경량화된 파일들이 들어있기에 npm을 위한 파일이 들어있지 않아서 RUN 부분에 npm install을 할 수가 없습니다.
알파인 이미지의 사이즈는 5MB정도 밖에 안됩니다. 그러기에 Npm이 들어 있는 베이스 이미지를 찾아야 하는데 그것들 중 하나가 node 이미지입니다.

 

그렇다면 npm install은 무엇일까요?

npm은 Node.js로 만들어진 모듈을 웹에서 받아서 설치하고 관리해주는 프로그램입니다.
npm install은 package.json에 적혀 있는 종속성들을 웹에서 자동으로 다운받아서 설치해주는 명령어입니다.
결론적으로 현재 리액트 JS앱을 만들 때 필요한 모듈들을 다운 받아 설치하는 역햘을 합니다.