피드로 돌아가기
Dev.toDevOps
원문 읽기
Jenkins 도입을 통한 수동 빌드 프로세스의 CI/CD 자동화 전환
30-Day Cloud & DevOps Challenge: Day 8 — Jenkins: my First CI/CD Pipeline
AI 요약
Context
Docker Compose 기반의 멀티 컨테이너 환경에서 코드 변경 시마다 수동으로 빌드 및 재시작을 수행하는 비효율적 구조. 반복적인 수동 개입으로 인한 휴먼 에러 가능성과 배포 리드타임 증가라는 병목 지점 존재.
Technical Solution
- Dockerized Jenkins 구축을 통한 기존 컨테이너 스택과의 환경 일관성 유지
/var/run/docker.sock볼륨 마운트를 통한 Jenkins 컨테이너 내부에서의 Docker 명령 제어 권한 확보jenkins/jenkins:lts이미지 채택으로 운영 안정성 및 장기 지원 버전 확보- Pipeline as Code(Groovy DSL) 도입을 통한 빌드 및 배포 프로세스의 코드화 및 버전 관리 체계 구축
- Docker Daemon DNS 설정 최적화(
8.8.8.8,1.1.1.1)를 통한 이미지 Pull 타임아웃 문제 해결 - 호스트 포트 8081 매핑을 통한 기존 서비스와의 포트 충돌 방지 및 접근성 확보
실천 포인트
- Jenkins 컨테이너에서 호스트 Docker 엔진 제어가 필요한 경우 docker.sock 마운트 설정 확인 - CI/CD 파이프라인 설계 시 UI 기반 설정보다 Groovy 스크립트를 활용한 Pipeline as Code 지향 - 컨테이너 환경의 DNS 이슈 발생 시 `/etc/docker/daemon.json` 설정을 통한 외부 레지스트리 연결성 검토 - 데이터 영속성을 위해 Jenkins Home 디렉터리의 외부 볼륨 마운트 필수 적용