Jenkins (feat. docker)

skyju·2023년 4월 4일
1

Dev-ops

목록 보기
3/3
post-custom-banner

Jekins

젠킨스는 소프트웨어 개발 시 지속적인 통합 서비스(CI : Continuous Integration)를 제공하는 툴입니다.

  • 빌드 자동화를 통해, 프로젝트 표준 컴파일 환경에서의 컴파일 오류를 검출 할 수 있습니다.
  • 자동화 테스트를 수행합니다.
  • 정적 코드 분석에 의한 코딩 규약 준수 여부를 체크할 수 있습니다.
  • 프로파일링 툴을 이용하여 소스 변경에 따른 성능 변화를 감시합니다.
  • 결합 테스트 환경에 대한 배포 작업을 수행합니다.

Gitlab -> jenkins

  • 개발자가 gitlab의 특정브랜치에 머지를 하면 이벤트가 트리거되어 Jenkins에서 빌드를 시작합니다.
  • Gitlab의 경우 default 브랜치가 master로 되어 있어서 개발 할때는 develop 브랜치를 바라보도록 해주면 됩니다.
  • 빌드가 완료되는 도커 이미지가 제작되어 배포됩니다.
  • 동일한 도커 이미지로 제작, 배포되기 때문에 동일성이 보장됩니다.

Jenkins 프로젝트 관리하기

새 프로젝트 생성하기

  • Jenkins 메인화면에서 새로운 item클릭, 이름 작성 및 Freestyle project 선택 후 OK
  • 소스 코드 관리 Git 선택
  • 빌드 유발 > Build when a change is pushed to Gitlab. 선택 & Secret token > Generate 선택 후 key 복사
  • Build Steps > Execute shell 선택

GitLab에서 좌측 Settings > Webhooks

  • 4번에 있는 webhook URL을 URL에 입력하고 복사해 둔 Secret token을 입력
  • 프로젝트에 맞는 Trigger 설정 후 Add webhook 클릭
  • 하단 Project Hooks에서 원하는 Trigger를 유발하여 테스트 가능

Jenkins에 Docker compose 권한 주기

  1. 우선 젠킨스 내부 컨테이너에 접속
docker exec -it jenkins /bin/bash
  1. 다음 명령어를 통해 도커-컴포즈 권한을 준다.
chmod +x /usr/local/bin/docker-compose; # 도커 컴포즈에 대한 실행권한 부여
  1. docker 그룹에서 같이 관리하고자 할 경우에 다음과 같은 방법을 통해 docker-compose를 docker 그룹에 추가하고 소유자와 멤버에게만 실행권한을 부여할 수 있다.
usermod -aG docker $유저명               # 유저를 도커 그룹에 추가
chgrp docker /usr/local/bin/docker-compose # 도커 컴포즈 파일을 도커 그룹으로 변경시켜준다
chmod 750 /usr/local/bin/docker-compose   # 도커 그룹의 소유자와 멤버에게 실행권한 부여
profile
https://github.com/skyju
post-custom-banner

0개의 댓글