-
Notifications
You must be signed in to change notification settings - Fork 4
CI CD
김무성 edited this page Dec 2, 2021
·
1 revision
-
Jenkins 사용하다 실패
https://www.dongyeon1201.kr/9026133b-31be-4b58-bcc7-49abbe893044
version: '3' services: jenkins: image: jenkins/jenkins:lts container_name: jenkins_cicd volumes: - /var/run/docker.sock:/var/run/docker.sock - /jenkins:/var/jenkins_home ports: - "8080:8080" privileged: true user: root
-
docker-compose up -d로 jenkins 띄우기
-
이후 [공인 IP]:8080 으로 접속하면 jenkins를 설정할 수 있다.
-
jenkins pw는 docker-compose logs 명령어로 확인
-
Jenkins ssh key 설정
-
docker exec -it [컨테이너 이름] /bin/bash
로 젠킨스 컨테이너의 쉘에 접속 - ssh 키 조합 생성
# .ssh 위치에 키 저장 mkdir /var/jenkins_home/.ssh cd ./.ssh # ssh 키 생성 ssh-keygen -t rsa -f /var/jenkins_home/.ssh/jenkins_ci
- 다 엔터눌러서 생성하면 된다.
- 그러면 공개키(.pub)과 개인키가 생성되는데 cat 명령어로 내용을 확인할 수 있다.
- 개인키를 젠킨스에, 공개키를 Github에 등록해야한다.
-
-
젠킨스에 개인키 등록
- Cat 명령어로 개인키 확인 후 복사
- 젠킨스 페이지에서 [Jenkins 관리] → [Manage Credentials] →
global
의add credentials
버튼을 누른다. - Kind 옵션에서
SSH Username with private key
설정 → Username 입력 → Private Key 옵션의 Enter directly 클릭 → 아까 cat 명령어로 확인했던 개인키 붙여넣기
-
공개키 Github에 등록
- Cat 명령어로 공개키 확인 후 복사
- 깃허브 레포지토리의 Setting에서 Deploy keys에 등록한다.
-
Github Webhook 설정
- PR후 merge 작업 시, Jenkins에 알림이 가도록 설정
- 기본적으로 Jenkins에 github plugin이 설치되어 있어서 Github에서만 설정해주면 된다.
- Setting의 Webhooks의 Add webhhok을 클릭해 설정한다.
- URL에 [Jenkins IP:8080]/github-webhook을 입력 후 다른 옵션은 건들지 말고 add해준다.
-
깃허브와 연결되었으니 이제 빌드를 위한 Jenkins Job 설정
- Jenkins 메인 페이지에서 [새로운 Item] → [Freestyle project](이름은 아무거나, 난 jenkins_cicd로 함)
-
소스 코드 관리
- Git을 선택 후 git 레포지토리의 ssh URL을 복사해서 넣어주고
Credentials
엔 아까 등록한 키를 선택한다. - branch에는 우리는 개발 환경은 develop, 운영 환경은 main이므로 각 서버에 맞게 설정한다.
- Git을 선택 후 git 레포지토리의 ssh URL을 복사해서 넣어주고
-
빌드 관련 설정
- 빌드 유발
-
Github hook trigger for GITScm polling
선택
-
- Build
-
Execute shell
을 선택하고 빌드 & 테스트를 위한 코드 작성
-
- 빌드 유발
-