Project/Boilerplate

AWS EC2 Next.js 배포

조용우 2025. 4. 15. 02:55

Dockerfile (Next.js 프로젝트 최상위 폴더)

# 1단계: 빌드
FROM node:22-alpine AS builder
WORKDIR /app
COPY . .
RUN npm install
RUN npm run build

# 2단계: 런타임
FROM node:22-alpine
WORKDIR /app
COPY --from=builder /app .
RUN npm install --omit=dev
EXPOSE 3000
CMD ["npm", "run", "start"]

 

1. Next.js 빌드 이미지파일로 생성 (Local IDE)

docker build -t next-app .

 

2. 생성한 이미지파일 tar로 압축하기 (Local IDE)

docker save next-app > next-app.tar

 

3. 압축한 이미지 파일 EC2로 전송 (CMD 최상단 *pem 저장 위치)

scp -i <비밀키>.pem <이미지 tar 경로> ubuntu@<EC2 IP>:/home/ubuntu

 

4. EC2 접속 (CMD 최상단 *pem 저장 위치)

ssh -i <비밀키>.pem ubuntu@<EC2 IP>

 

5. 도커 이미지 로드 (EC2 접속 후)

docker load < next-app.tar

 

6. 이미지 컨테이너에서 실행 80번 포트로 매핑 (EC2 접속 후)

docker stop next-app && docker rm next-app // 기존 앱 실행중이면 제거
docker run -d -p 80:3000 --name next-app next-app