Skip to content

오창섭 sprint-mission-11#92

Merged
Kang-kyunghun merged 33 commits intocodeit-bootcamp-nodejs:오창섭from
GhostGN95:오창섭-sprint11
Feb 15, 2026

Hidden character warning

The head ref may contain hidden characters: "\uc624\ucc3d\uc12d-sprint11"
Merged

오창섭 sprint-mission-11#92
Kang-kyunghun merged 33 commits intocodeit-bootcamp-nodejs:오창섭from
GhostGN95:오창섭-sprint11

Conversation

@GhostGN95
Copy link
Collaborator

@GhostGN95 GhostGN95 commented Dec 29, 2025

미션 목표

  • Github Actions로 테스트, 배포 자동화
  • Docker 이미지 만들기

요구사항

기본

  • Github Actions 활용

    • 브랜치에 pull request가 발생하면 테스트를 실행하는 액션을 구현해 주세요.
    • main 브랜치에 push가 발생하면 AWS 배포를 진행하는 액션을 구현해 주세요.
    • 개인 Github 리포지터리에서 Actions 동작을 확인해 보세요.
  • Docker 이미지 만들기

    • 다음을 만족하는 Dockerfile과 docker-compose.yml을 작성해 주세요.
    • Express 서버를 실행하는 Dockerfile을 작성해 주세요.
    • Express 서버가 파일 업로드를 처리하는 폴더는 Docker의 Volume을 활용하도록 구현해 주세요.
    • 데이터베이스는 Postgres 이미지를 사용해 연결하도록 구현해 주세요.
    • 실행된 Express 서버 컨테이너는 호스트 머신에서 3000번 포트로 접근 가능하도록 구현해 주세요.

제출 안내

  • Github actions는 .github/workflows/ 폴더에 저장해서 제출합니다.
  • Docker 관련 파일들은 프로젝트 폴더 최상위에 저장합니다.

주요 변경사항

  • 기존의 다른 폴더들 삭제 완료

멘토에게

  • 셀프 코드 리뷰를 통해 질문 이어가겠습니다.

@@ -0,0 +1,28 @@
FROM node:22-alpine AS builder
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

아래처럼 수정하여 조금 더 최적화 할 수 있지 않을까 합니다.
저게 완전한 정답은 아닙니다. 현재 구성에서 어떤 것들을 변화시켜 최적화 할 수 있는지 확인해 보시면 좋을 것 같습니다.

# ============= Builder Stage =============
FROM node:22-alpine AS builder

RUN apk add --no-cache openssl

WORKDIR /server

# 의존성 설치를 위한 파일만 먼저 복사 (레이어 캐싱 최적화)
COPY package.json package-lock.json ./
RUN npm ci

# 소스 코드 복사
COPY prisma ./prisma
COPY src ./src
COPY tsconfig.json ./

# Prisma 클라이언트 생성 및 빌드
RUN npx prisma generate
RUN npm run build

# ============= Runner Stage =============
FROM node:22-alpine AS runner

RUN apk add --no-cache openssl

WORKDIR /server

# 프로덕션 의존성만 설치
COPY package.json package-lock.json ./
RUN npm ci --omit=dev

# Prisma 스키마만 복사 (클라이언트 생성용)
COPY prisma ./prisma
RUN npx prisma generate

# 빌드된 파일만 복사
COPY --from=builder /server/dist ./dist

EXPOSE 3000

CMD ["node", "dist/index.js"]

@Kang-kyunghun Kang-kyunghun merged commit c5bf2ea into codeit-bootcamp-nodejs:오창섭 Feb 15, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants