[참고자료]: Docker를 활용하여 Jenkins설치
저번글에 이어서 Jenkins를 설치하고 Gitlab과 연동까지 해볼 것이다.
이미지를 검색하고 다운로드한다.
docker search Jenkins
docker pull jenkins/jenkins:lts
docker run으로 다운받은 이미지로 jenkins를 실행해보자.
docker run -d -p 8181:8080 --restart=always --name my_jenkins -u root
jenkins/jenkins:lts
-d detached mode (백그라운드 모드)
-p host와 container의 포트를 연결 (포워딩)
-v host와 container의 디렉토리를 연결 (마운트)
–name container 이름
-u 실행할 사용자 지정
web browser에서 Jenkins에 접속해보자.
http://[JenkinsServerIP]:8181
위와 같은 화면이 뜨면 성공이다.
원래 docker의 jenkins bash로 접속하고 위 사진에 적힌 경로의 암호파일을 열어서 초기암호를 확인해야하지만
아래 커맨드로 간편하게 확인할 수 있다.
docker logs jenkins
로그인 하고나면 아래와 같은 초기화면이 나온다.
"Install suggested plugins"를 선택해서 기본 플러그인을 설치해주자.
초기 설정 후 root 설정을 해준다.
아래와 같이 초기화면을 확인할 수 있다.
본격적으로 연동을 하기 전에 필요한 플러그인을 설치해주자
Jenkins에서 Jenkins 관리 > 플러그인 관리 > "git" 검색 > "git plugin", "gitlab plugin" 설치
"새로운 item"으로 새 프로젝트를 생성해보자.
프로젝트 이름을 작성하고 Free style project를 선택해준다.
pipeline에서 "구성"으로 이동한다.
Credential을 다음과 같이 추가해준다.
"소스코드관리"로 이동해서 gitlab clone URL으로 아래와 같이 gitlab 계정으로 설정한다.
"Build Steps"에서 "Execute shell"을 선택하고 저장한다.
"지금빌드"를 클릭하여 gitlab의 프로젝트 파일들을 가져와 빌드하는지 확인한다.
위와 같이 출력되면 성공!
Jenkins와 gitlab의 연동을 위해 webhook을 설정해야한다.
구성 > 빌드유발(Build Triggers) > 고급 으로 이동한 뒤 secret token을 생성한다.
이건 다음 단계에서 써야하니 paste 해놓는다.
gitlab으로 돌아가서 webhook URL과 생성했던 secret token을 넣어준다.
[❓] 아래와 같이 URL이 block 되어있다는 오류가 떴다.
[❗️] Menu > Admin > Settings > Network > Outbound requests 로 이동해서 아래와 같이 IP 연결을 허용한다.
등록에 성공하면 아래와 같이 hook이 뜬다.
Hook의 Edit를 눌러 아래에 있는 Trigger를 Push events에 All branches로 설정한다.
아래와 같은 화면이 출력되면 성공!
Jenkins에서도 확인할 수 있다.
여기까지 CI를 위한 gitlab, Jenkins를 설치하고 연동했다.
이제 CD를 위해 Jenkins를 WAS와 연동해야한다..
화이팅...!