피드로 돌아가기
Dev.toDevOps
원문 읽기
GitHub Webhook 기반 Node.js Docker CI/CD 자동화 파이프라인 구축
Jenkins CI/CD Pipeline for a Dockerized Node.js Application: Manual Trigger vs Automatic Trigger Using GitHub Webhooks
AI 요약
Context
수동 트리거 방식의 배포 프로세스로 인한 운영 효율 저하 및 반복적 서버 접속 필요성 발생. 기존 Docker 배포 시 포트 충돌로 인한 프로세스 중단 및 빌드 실패 문제 상존.
Technical Solution
- GitHub Webhook 도입을 통한 Code Push 기반의 Automatic Trigger 구조 설계
- Jenkins user를 Docker group에 추가하여 Sudo 권한 없이 Docker Engine 제어 가능 환경 구축
docker rm -f || true패턴 적용으로 기존 컨테이너 강제 제거 및 포트 점유 충돌 방지- Jenkinsfile을 SCM 기반으로 관리하여 파이프라인의 버전 관리 및 일관성 확보
- Fine-grained Personal Access Token 활용을 통한 GitHub API 접근 권한 최적화
실천 포인트
1. Jenkins-Docker 연동 시 권한 문제 해결을 위해 유저 그룹 설정 확인
2. 무중단 배포 전 단계에서 기존 컨테이너의 강제 종료 및 제거 로직 포함 여부 검토
3. Pipeline Script from SCM 방식을 통한 파이프라인 코드화(IaC) 적용
4. Webhook 설정 시 GitHub Personal Access Token의 권한 범위 최소화 적용