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
'Project > Boilerplate' 카테고리의 다른 글
OAuth2.0 로그인 시 Access Token 재발급 문제 (1) | 2025.04.21 |
---|---|
AWS EC2에서 OAuth2.0 로그인 및 쿠키 저장 문제 (2) | 2025.04.21 |
AWS EC2+RDS SpringBoot+MySQL 배포 (2) | 2025.04.15 |
이미지 저장용 EC2 + S3 버킷 연동 (1) | 2025.04.14 |
Prometheus + Grafana 연동 (0) | 2025.04.12 |