일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- Oracle
- Git
- 요리
- laravel
- MySQL
- ReactJS
- java
- jsp
- Spring Boot
- elasticsearch
- IntelliJ
- db
- Spring Batch
- devops
- php
- javascript
- springboot
- Gradle
- it
- redis
- ubuntu
- Spring
- jenkins
- Web Server
- JVM
- tool
- linux
- 맛집
- Design Patterns
- AWS
- Today
- Total
아무거나
Docker를 이용한 CI 구축 연습하기 (젠킨스, 슬랙) 본문
1. Task 실행 테스트를 위해 간단한 Task만 build.gradle에 추가
[build.gradle]
repositories {
....
task print() {
doLast {
println "codecommit push complete"
}
}
}
2. sudo docker run -p 9000:8080 -v /docker/jenkins:/var/jenkins_home -u root -d jenkins:2.60.3
ex) -v /docker/jenkins:/var/jenkins_home 은 /docker/jenkins의 실제 서버에 docker 컨테이너의 /var/jenkins_home 폴더가 공유된다.
차후 jenkins에 문제가 생겼을때 해당 경로에 -v옵션을 줘서 실행시키면 데이터 유지가 가능하다.
3. jenkins접속하고 Freestyle Project을 선택하여 OK클릭
- name : ws_internal_api_live
4. 해당 item 세팅
- git 입력
- 빌드유발 : GitHub hook trigger for GITScm polling
- 바로아래 Build 에서 Execute shell 선택
** 이미 프로젝트에 gradle 실행파일인 gradlew가 포함되어있기 때문에 별도로 gradle을 설치하지 않고 gradlew를 사용하도록 작성하겠습니다.
[command]
chmod +x gradlew
./gradlew clean print
보시는것처럼 clean 수행 후, 이전에 작성한 task인 print를 수행하도록 하였습니다.
이러면 빌드 수행시 print가 수행되었는지 확인할 수 있겠죠?
마지막 저장까지 하시면 젠킨스 설정은 이제 끝이났습니다.
5. 이제 jenkins 컨테이너에 접속하여 권한을 변경한다.
- jenkins가 설치된 경로의 소유권을 jenkins:jenkins로 변경한다.
6. slack 채널을 생성한다.
7. https://wmp-new-biz-dev.slack.com/apps 그리고 젠킨스에서 사용할 인증 토큰을 생성하기 위해 브라우저에서 방금 만든 슬랙 url/apps로 접속하겠습니다.
8. 검색어에 jenkins CI로 검색 후 install (=add configuration)
- 그럼 페이지에서 젠킨스와 어떻게 연동하면 되는지 상세하게 가이드가 보여진다. 보고 따라하자.
- jenkins 플러그인에서 Slack Notification를 설치
- 이때 step3의 Base URL과 Integration Token을 복사해놓습니다.
9. jenkins관리 -> 시스템 설정에서 8에서 복사한 애들을 붙여넣는다.
- Base URL, Integration Token, Channel 입력 후 Test Connection 을 클릭하여 슬랙에 테스트 메세지가 잘 출력되는지 확인 잘되면 저장
10. 빌드할 프로젝트에 설정 페이지에 들어가서 빌드 후 조치 클릭
- 빌드 후 조치 추가에서 Slack Notifications 클릭
- 빌드 실패/성공시에만 메세지보내는걸 설정하는 기준으로 Notify Failure랑 Notify Success를 체크하고 저장
'Infra > DevOps' 카테고리의 다른 글
[springboot] gradle 개발환경별 버저닝 빌드&배포 (0) | 2019.08.21 |
---|---|
Jenkins + Docker 빌드/배포 or 개발환경 구축 (0) | 2019.06.10 |
vagrant로 virtualbox 생성시 password쪽 부터 로드안되는 문제 (0) | 2019.03.26 |
[vagrant] 로컬 개발환경구축 vagrant세팅 (0) | 2019.03.25 |
[vagrant] 폴더가 전부 777 권한일 경우 설정 수정 (0) | 2019.03.25 |