[김선영] sprint11#216
Hidden character warning
Conversation
| volumes: | ||
| - ./uploads:/app/uploads:rw |
There was a problem hiding this comment.
Volume을 uploads 폴더에 매핑한 건 요구사항에 맞게 잘 구현하셨는데, 실제 이미지 업로드 코드(imagesController.ts)를 보면 S3에 직접 업로드하는 방식으로 되어있습니다.
로컬 파일시스템의 uploads 폴더에 저장하는 로직이 보이지 않아요.
미션의 요구사항을 충족하려면, 실제로 파일이 해당 경로에 저장되도록 업로드 로직을 맞춰줄 필요가 있을 거 같네요.
multer의 diskStorage를 활용하면 로컬 경로에 저장하는 방식을 구현할 수 있습니다.
| script: | | ||
| cd /home/ec2-user/6-sprint-mission | ||
| git pull origin 김선영 | ||
| docker compose down | ||
| docker compose up -d --build |
There was a problem hiding this comment.
현재 구조에서는 down → up 사이에 서비스가 중단되는 시간이 발생해요.
지금 단계에서 무중단 배포까지 구현할 필요는 없지만, docker compose down과 up 사이에 빌드가 포함되어 있어서 다운타임이 길어질 수 있다는 점은 인식하고 계시면 좋겠어요.
docker compose up -d --build만 사용하면 새 컨테이너가 준비된 후 기존 것을 교체하는 방식으로 동작하기도 합니다.
There was a problem hiding this comment.
현재 단일 스테이지 빌드를 사용하고 있어서, 최종 이미지에 devDependencies(jest, ts-jest, prettier 등)와 TypeScript 소스 코드가 모두 포함돼요.
Docker의 multi-stage build 방식을 활용하면 빌드 단계와 실행 단계를 분리해서 최종 이미지 크기를 줄일 수 있습니다.
구글에 Docker multi-stage build Node.js를 검색하여 관련 내용을 한번 살펴보시기 바랍니다.
|
전반적으로 잘 구현하셨습니다. 설계 영역에서는 멀티 스테이지 빌드가 적용되지 않아 아쉬운데, 이 부분만 보완하면 이미지 크기와 보안 모두 개선할 수 있으니 꼭 시도해보시길 권합니다. |
미션 목표
요구사항
Github Actions 활용
main브랜치에 push가 발생하면 AWS 배포를 진행하는 액션을 구현해 주세요.Docker 이미지 만들기
제출 안내
.github/workflows/폴더에 저장해서 제출합니다.주요 변경사항
스크린샷
멘토에게