[typescript] 도커와 타입스크립트를 사용하여 멀티 환경 배포 방식 적용하기

도커는 애플리케이션을 컨테이너로 패키징하여 실행하는 오픈 소스 플랫폼으로, 멀티 환경 배포에 매우 유용합니다. 타입스크립트는 자바스크립트에 정적 타입을 추가한 언어로, 더 안전하고 생산적인 개발을 가능하게 합니다. 이번 게시물에서는 이 두 기술을 함께 사용하여 멀티 환경에서의 배포 방식을 알아보겠습니다.

1. 타입스크립트 프로젝트 설정

먼저, 타입스크립트 프로젝트를 설정합니다. tsconfig.json 파일을 통해 타입스크립트 컴파일러 설정을 정의할 수 있습니다. 아래는 간단한 tsconfig.json 예제입니다.

{
  "compilerOptions": {
    "target": "ES2018",
    "module": "commonjs",
    "outDir": "dist",
    "strict": true
  },
  "include": ["src/**/*"],
  "exclude": ["node_modules"]
}

2. Dockerfile 작성

다음으로, 프로젝트 루트에 Dockerfile을 작성합니다. Dockerfile에는 애플리케이션을 실행하는 데 필요한 환경과 의존성을 정의합니다.

# Docker 이미지 설정
FROM node:14-alpine

# 앱 디렉토리 생성
WORKDIR /usr/src/app

# 의존성 설치
COPY package*.json ./
RUN npm install

# 앱 소스 추가
COPY . .

# 애플리케이션 빌드
RUN npm run build

# 앱 실행
CMD [ "node", "./dist/index.js" ]

3. Docker Compose를 이용한 멀티 환경 배포

마지막으로, 멀티 환경 배포를 위해 Docker Compose를 사용합니다. docker-compose.yml 파일을 통해 여러 컨테이너로 구성된 애플리케이션을 쉽게 관리할 수 있습니다.

version: '3.8'
services:
  app:
    build: .
    ports:
      - "3000:3000"
    environment:
      NODE_ENV: production
  db:
    image: "mongo:latest"
    ports:
      - "27017:27017"

위 예제에서 app 서비스는 우리가 작성한 애플리케이션을 실행하고, db 서비스는 MongoDB를 실행합니다.

이제 위의 설정을 통해, 타입스크립트로 작성한 애플리케이션을 도커를 활용하여 멀티 환경에서 배포할 수 있습니다. 본 글에서 다룬 내용은 간단한 예제일 뿐이지만, 실제 프로젝트에 적용하여 보다 안정적이고 확장 가능한 배포 환경을 구축할 수 있습니다.

참고 자료