jenkins GUI Web에서 초기 설정하기
gui web 접속
![](https://velog.velcdn.com/images%2Fguswns3371%2Fpost%2Fcc6e5445-d65b-491f-91b4-778fd9179ddd%2Fimage.png)
- 초기 admin 비밀번호를 입력후 continue를 누른다.
// 초기 admin 비밀번호는 initialAdminPassword 파일에 있다.
// 해당 명령어 결과를 복사하여 붙여넣는다.
$ sudo cat /var/lib/jenkins/secrets/initialAdminPassword
![](https://velog.velcdn.com/images%2Fguswns3371%2Fpost%2F5c4d32c0-2f42-4a20-8747-dcac2ea5e95f%2Fimage.png)
![](https://velog.velcdn.com/images%2Fguswns3371%2Fpost%2F663a2932-4a44-49b7-8f37-b150bc0b584d%2Fimage.png)
- jenkins에서 추천하는 플러그인들을 설치한다.
![](https://velog.velcdn.com/images%2Fguswns3371%2Fpost%2F9f64c4e1-a4c7-4458-9b6a-2a03ad183335%2Fimage.png)
jenkins item 만들기
![](https://velog.velcdn.com/images%2Fguswns3371%2Fpost%2F704b9347-3463-4ba4-80a3-8fbe13ef2288%2Fimage.png)
![](https://velog.velcdn.com/images%2Fguswns3371%2Fpost%2Fc2ff8d44-d056-46e9-b519-007723a114ba%2Fimage.png)
- 깃헙에 대해 jenkins credentials 를 만든다
- Username에는 깃헙 아이디
- Password에는 깃헙 비밀번호를 기입한다.
- Add 버튼을 눌러 생성한다.
- 방금 생성한 credential을 선택한다.
- private 저장소 설정하기
![](https://velog.velcdn.com/images%2Fguswns3371%2Fpost%2F11e05ba1-7dee-4ddd-a1bc-2c671a95ba7c%2Fimage.png)
- Poll SCM 의 Schedule 란에 * * * * * 을 기입한다.
- 분 시간 일 월 주 간격으로 job을 실행하는 의미이다. (참고)
- 2 * * * : 2분 간격으로 job을 실행하는 것이다
- * * * * : 매 분 간격으로 job을 실행한다
- 젠킨스는 매분 간격으로 github에서 commit이 생길 떄마다 clone하여 빌드한다.
- spring boot 의 build.gradle을 실행하기 위해 'Invoke Gradle script'를 선택한다.
![](https://velog.velcdn.com/images%2Fguswns3371%2Fpost%2F453c97d6-0b1a-44e3-8e5f-ba4d7e01cc62%2Fimage.png)
- Gradle Wrapper를 사용가능하게 만들고, Wrapper의 위치 기입한다.
- wrapper는 스프링 부트 프로젝트의 루트 경로에 있으므로 ./을 입력
- Tasks란에 docker를 기입한다.
- gradle의 docker 라는 task를 실행한다.
![](https://velog.velcdn.com/images%2Fguswns3371%2Fpost%2Fb735b53a-6d50-4b00-91ce-e17e368aa709%2Fimage.png)
- 나머지 task(build docker, dockerTagDockerHub)를 실행한다.
- 단, '--exclude-task test'옵션을 붙여 빌드 오류가 나지 않도록한다.
- build.gradle에서 해당 task에 대한 test 코드를 입력했다면 '--exclude-task test'옵션이 필요하지 않다.
- 위의 Task들을 실행하면 젠킨스는 자동적으로 github에서 clone한 스프링 부트 소스를 도커 이미지로 만든다.
- jenkins가 gradlew로 만든 도커 이미지를 run 하는 명령어를 입력하기 위해서 'Execute shell'를 선택한다.
![](https://velog.velcdn.com/images%2Fguswns3371%2Fpost%2F652250cd-9d63-4a96-886f-4b502aaf3744%2Fimage.png)
- docker rm -f spring_example_app
- spring_example_app 이라는 이름의 컨테이너를 먼저 remove한다.
- docker run -d --name spring_example_app -p 80:80 --network docker-network guswns3371/spring-example:1.0-SNAPSHOT
- spring_example_app 이라는 이름의 컨테이너를 run한다.
- -p 80:80 : 포트는 80으로 설정한다.
- --network docker-network : docker-network라는 네트워크에 연결한다.
- guswns3371/spring-example:1.0-SNAPSHOT : 도커 이미지 이름이다.
![](https://velog.velcdn.com/images%2Fguswns3371%2Fpost%2F0757a913-1920-4df3-a093-fa8491191871%2Fimage.png)