오픈소스 자바스크립트 프로젝트를 Docker 컨테이너로 실행하고 확장하기

자바스크립트 프로젝트를 개발하고 배포할 때, Docker 컨테이너를 사용하면 환경의 일관성과 이식성을 확보할 수 있습니다. 이 글에서는 오픈소스 자바스크립트 프로젝트를 Docker 컨테이너로 실행하고 확장하는 방법에 대해 배워보겠습니다.

Docker 설치하기

먼저 Docker를 설치해야 합니다. Docker는 여러 운영 체제에서 사용할 수 있으며, 공식 홈페이지에서 설치 파일을 다운로드할 수 있습니다. 설치가 완료되면 Docker를 실행하고 동작하는지 확인해보세요.

프로젝트를 Docker 컨테이너로 실행하기

Docker를 설치했다면, 이제 프로젝트를 Docker 컨테이너로 실행해보겠습니다. 프로젝트 디렉터리에서 Dockerfile이라는 파일을 생성하고 아래와 같이 작성해주세요.

FROM node:12
WORKDIR /app
COPY . .
RUN npm install
EXPOSE 3000
CMD ["npm", "start"]

위의 Dockerfile은 기본적으로 Node.js를 기반으로 하는 자바스크립트 프로젝트를 컨테이너 안에서 실행하기 위한 설정입니다. 프로젝트를 실행하기 위해 필요한 의존성을 설치하고, 3000번 포트를 개방하며, npm start 명령어로 애플리케이션을 시작합니다.

생성한 Dockerfile을 저장한 후, 터미널에서 프로젝트 디렉터리로 이동한 다음 아래 명령어를 입력하여 이미지를 빌드합니다.

$ docker build -t my-app .

위 명령어는 현재 디렉터리의 Dockerfile을 사용하여 my-app이라는 이미지를 빌드합니다. -t 옵션은 이미지에 태그(이름)을 붙이는 역할을 합니다.

이미지 빌드가 완료되었다면, 아래 명령어를 입력하여 이미지를 기반으로 컨테이너를 실행합니다.

$ docker run -p 3000:3000 my-app

위 명령어는 호스트의 3000번 포트와 컨테이너의 3000번 포트를 연결하여 애플리케이션을 실행합니다. 이제 웹 브라우저에서 http://localhost:3000에 접속하여 프로젝트를 확인할 수 있습니다.

컨테이너 확장하기

Docker를 사용하면 컨테이너를 쉽게 확장할 수 있습니다. 예를 들어, 프로젝트가 인기를 얻어 더 많은 트래픽을 처리해야 한다면, 다수의 컨테이너를 생성하고 로드 밸런서를 설정함으로써 트래픽을 균등하게 분산할 수 있습니다.

여러 컨테이너를 생성하려면 Docker Compose를 사용하는 것이 편리합니다. Docker Compose는 여러 컨테이너를 정의하고 실행하기 위한 도구입니다. 프로젝트 디렉터리에 docker-compose.yml 파일을 생성하고 아래와 같이 작성해주세요.

version: '3'
services:
  app:
    build: .
    ports:
      - 3000:3000
    environment:
      - NODE_ENV=production
    scale: 3

위의 예시는 app이라는 서비스를 정의하고, 세 개의 컨테이너를 생성하여 3000번 포트와 호스트의 3000번 포트를 연결합니다. 또한 NODE_ENV 환경 변수를 production으로 설정합니다.

scale 옵션을 사용하여 컨테이너 수를 지정할 수 있으며, 이 예시에서는 3개의 컨테이너를 생성하도록 설정하였습니다.

이제 터미널에서 프로젝트 디렉터리로 이동한 다음 아래 명령어를 입력하여 컨테이너를 실행합니다.

$ docker-compose up

위 명령어는 docker-compose.yml 파일을 사용하여 컨테이너를 실행합니다. 설정된 대로 프로젝트가 여러 컨테이너에서 실행되고, 트래픽을 균등하게 분산하여 처리합니다.

마무리

이제 오픈소스 자바스크립트 프로젝트를 Docker 컨테이너로 실행하고 확장하는 방법을 배웠습니다. Docker를 사용하면 개발 환경의 일관성과 애플리케이션의 확장성을 향상시킬 수 있습니다. 자바스크립트 프로젝트를 개발하거나 배포할 때 Docker를 고려해보세요! 😊

참고 자료