Docker

express.js 도커 이미지 만들고 실행하기(docker-compose)

wr-rainforest 2024. 4. 23. 15:10

express.js 샘플 앱을 도커 이미지로 만들고, 도커 컴포즈로 실행하는 방법을 알아보겠습니다.

앱 만들기

npx express-generator --view=pug myapp

먼저 express-generator을 사용하여 샘플 앱을 만들어 줍니다.

 

https://expressjs.com/en/starter/generator.html

 

Express application generator

Express application generator Use the application generator tool, express-generator, to quickly create an application skeleton. You can run the application generator with the npx command (available in Node.js 8.2.0). $ npx express-generator For earlier Nod

expressjs.com

 

Dockerfile 생성

touch Dockerfile
vim Dockerfile
FROM node:alpine

WORKDIR /app

COPY package*.json ./

RUN npm install

COPY . .

EXPOSE 3000

# 노드 알파인 이미지를 기본 이미지로 사용하고
# 현재 폴더의 내용을 컨테이너로 복사하고
# express.js에서 설정된 3000번 포트를 exprose 하는 코드입니다.

 

도커파일을 생성하고 위의 내용을 붙여넣습니다.

 

도커 컴포즈 작성

상위 디렉토리로 이동해 다음과 같은 docker-compose.yml을 작성해 줍니다.

# ./myapp의 도커파일을 빌드하고
# 컨테이너 시작시 npm start 커맨드를 실행합니다.
# 3000번 포트를 외부로 노출합니다.
services:
  express-myapp:
    build: ./myapp
    command : npm start
    container_name: express-myapp
    ports:
      - 3000:3000

 

 

도커 컴포즈 실행

docker compose up

 도커 컴포즈 실행 후 http://localhost:3000/ 을 열면 express 앱이 잘 작동하고 있는 것을 볼 수 있습니다.

localhost:3000