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