Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- Spring
- kotlin spring
- Java
- 공부
- Linux
- CloudWatch
- 정보처리기사 실기
- AWS EKS
- Kubernetes
- CKA 기출문제
- 정보처리기사실기 기출문제
- 코틀린 코루틴의 정석
- mysql 튜닝
- APM
- PETERICA
- 기록으로 실력을 쌓자
- Elasticsearch
- kotlin coroutine
- Kubernetes 자격증
- tampermonkey
- Pinpoint
- CKA
- AI
- kotlin querydsl
- aws
- kotlin
- 정보처리기사 실기 기출문제
- MySQL
- IntelliJ
- minikube
Archives
- Today
- Total
피터의 개발이야기
[Node.js] Express 서버를 Docker에서 PM2로 기동하는 방법 본문
반응형
ㅁ 들어가며
[Node.js] PM2를 사용한 Node.js 애플리케이션 관리하기에서 PM2의 기능에 대해서 알아보았다. PM2는 Node.js 애플리케이션을 위한 프로세스를 관리하며, 어플의 성능을 모니터링하고 장애 발생 시 자동으로 재시작하는 기능을 제공한다. 이번 글에서는 Node.js 기반의 Express 서버를 Docker에서 PM2로 실행하는 방법을 정리하였다.
ㅁ Node.js Express 애플리케이션 설정
mkdir express-docker-pm2
cd express-docker-pm2
npm init -y
npm install express
ㅇ 프로젝트 생성
const express = require('express');
const app = express();
const PORT = process.env.PORT || 3000;
app.get('/', (req, res) => {
res.send('Hello World!');
});
app.listen(PORT, () => {
console.log(`Server is running on port ${PORT}`);
});
ㅇ index.js 파일을 생성하고 기본 서버 코드를 작성한다.
ㅁ PM2 설치
npm install pm2 --save
ㅇ PM2를 프로젝트에 설치한다.
ㅁ Dockerfile 작성
ㅇ 이제 Dockerfile을 작성하여 애플리케이션을 Docker 이미지로 생성해야 한다.
# Node.js 공식 이미지 사용
FROM node:14
# 작업 디렉토리 생성
WORKDIR /usr/src/app
# 패키지 파일 복사
COPY package*.json ./
# 패키지 설치
RUN npm install
# 애플리케이션 코드 복사
COPY . .
# PM2를 전역으로 설치
RUN npm install pm2 -g
# PM2를 사용하여 애플리케이션 실행
CMD ["pm2-runtime", "index.js"]
# 컨테이너가 수신할 포트 설정
EXPOSE 3000
ㅇ 프로젝트 루트 디렉토리에 Dockerfile을 생성.
ㅁ Docker Compose 설정
Docker Compose을 사용할 수도 있다.
version: '3'
services:
app:
build: .
ports:
- "3000:3000"
restart: always
ㅇ 편의성을 위해 docker-compose.yml 파일을 작성할 수 있다.
ㅁ Docker 이미지 빌드 및 실행
# Docker 이미지 빌드
docker build -t express-docker-pm2 .
# Docker Compose를 사용하여 실행
docker compose up
ㅇ Dockerfile 혹은 Docker compose로 빌드를 수행한다.
ㅇ docker build를 수행하였다.
docker run -d -p 3000:3000 express-docker-pm2
ㅇ docker를 실행한다.
ㅁ 애플리케이션 테스트
ㅇ 브라우저에서 http://localhost:3000
에 접속하여 "Hello World!" 메시지가 나타나면 성공이다.
ㅁ 함께 보면 좋은 사이트
ㅇ NGINX + HTTPS + NodeJS + PM2 도커로 만들기
ㅇ nodejs express 서버 docker에서 pm2로 기동하기
ㅇ Docker + PM2 + winston.js를 활용한 무중단 운영 시스템 구축하기
ㅇ 도커와 PM2를 이용한 Node.js scale-out 및 부하 테스트
반응형
'DevOps > Node.js' 카테고리의 다른 글
[Node.js] Node.js 서버 사이드,찍먹하기 (3) | 2024.09.27 |
---|---|
[Node.js] NodeJS 기본문법 (0) | 2024.09.20 |
[Node.js] PM2를 사용한 Node.js 애플리케이션 관리하기 (0) | 2024.09.16 |
[Node.js] Docker를 이용한 샘플 node.js 작성 (0) | 2024.09.15 |
Comments