Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BE] CI/CD 세팅 & 콘솔 서버 적용 #61

Merged
merged 60 commits into from
Nov 13, 2024
Merged

[BE] CI/CD 세팅 & 콘솔 서버 적용 #61

merged 60 commits into from
Nov 13, 2024

Conversation

sjy2335
Copy link
Collaborator

@sjy2335 sjy2335 commented Nov 12, 2024

👀 관련 이슈

#46

✨ 작업한 내용

  1. CI/CD 워크플로우 구성 (CI/CD Pipeline):

    • 트리거: main 및 be-feat#46 브랜치에 푸시 시 활성화됩니다.
    • 작업:
    • Setup: 레포지토리를 체크아웃합니다.
    • Deploy Console Server: 공유된 deploy-service.yml 워크플로우를 사용하여 콘솔 서버를 배포하며, 필요한 비밀 키와 환경 변수를 설정합니다.
  2. 재사용 가능한 배포 워크플로우 (deploy-service.yml):

    • 입력 및 비밀 키: 서비스별 매개변수와 비밀 키를 받아 유연한 배포를 지원합니다.
    • 단계:
      • 관련 디렉토리만 sparse checkout으로 체크아웃합니다.
      • Docker Buildx 설정 및 캐싱을 통해 빌드를 최적화합니다.
      • SCP를 사용하여 docker-compose.yml 등의 파일을 전송합니다.
      • Dockerfile을 토대로 이미지를 빌드하고 GitHub 컨테이너 레지스트리(GHCR)에 푸시합니다.
      • SSH를 사용하여 서버에 배포하며, 제로 다운타임을 보장하는 블루-그린 배포 로직을 포함합니다.
  3. Docker 구성:

    • Dockerfile: 효율적인 이미지 생성을 위한 멀티스테이지 빌드, 의존성 설치, 애플리케이션 빌드 및 PM2를 사용한 프로세스 관리 설정.
    • docker-compose.yml: Nginx, server-blue, server-green 서비스를 정의하며, 환경 구성 및 볼륨 매핑을 설정합니다.
    • Nginx 설정: 블루-그린 서버를 위한 업스트림을 설정하고, 들어오는 트래픽을 처리하기 위한 프록시 설정을 구성합니다.
    • PM2 에코시스템 (ecosystem.config.js): 클러스터 모드에서 콘솔 서버 애플리케이션을 관리하기 위해 PM2를 구성하였습니다. 서버의 안정성을 높입니다.

🌀 PR Point

  • 궁금한점 있으시다면 편하게 남겨주세요!

🍰 참고사항

프록시 서버랑 네임서버는 pull 받은 다음에 정상적으로 돌아가는 거로 테스트해봐야 할 것 같습니다.

📷 스크린샷 또는 GIF

image

@EnvyW6567 EnvyW6567 added the feature 새로운 기능 label Nov 13, 2024
@EnvyW6567 EnvyW6567 added this to the v.0.2.0 배포 milestone Nov 13, 2024
@EnvyW6567 EnvyW6567 linked an issue Nov 13, 2024 that may be closed by this pull request
3 tasks
@EnvyW6567 EnvyW6567 self-requested a review November 13, 2024 01:04
Copy link
Collaborator

@EnvyW6567 EnvyW6567 left a comment

Choose a reason for hiding this comment

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

좋은데요?

고생하셨습니다!!

@EnvyW6567 EnvyW6567 merged commit 5f82d27 into dev-back Nov 13, 2024
2 checks passed
@sjy2335 sjy2335 added the task 테스크 이슈 label Nov 13, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature 새로운 기능 task 테스크 이슈
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[TASK] CI/CD 파이프라인 구축
2 participants