Jenkins가 잘 실행되었다면 본인URL:8080으로 접속하면 jenkins 화면이 나올 것이다.
Administrator password는 호스트 pc에서 실행중인 jenkins container를
docker logs [container_id]를 실행해 보았을 때 비밀번호를 확인할 수 있다.
권장 설정인 Install suggested plugins를 눌러 설치를 진행한다.
모든 과정이 완료되었다면 아래와 같은 페이지가 출력될 것이다.
Github로 접속하여 Settings 안에서 Webhooks를 들어간다.
Add webhook을 통해 새롭게 webhook을 추가한다.
1. Payload URL은 본인 jenkins경로에/github-webhook/
을 추가한다.
2. Content type은application/json
으로 설정한다.
3.Active
를 활성화 해주고 add Webhook을 누른다.
+ 새로운 Item
선택
name설정하고 Freestyle project 선택
소스 코드 관리에서 Git을 선택하고 Repository URL을 올릴 GIT 프로젝트 설정
build될 branch도 설정 (github는 default가 master이다)
빌드 유발에서 GitHub hook trigger for GITScm polling 선택
빌드 환경 설정 Use secret text(s) or file(s)에서 Username and password(separated)를 선택하고 Username Variable에 DOCKER_HUB_USERNAME, Password Variable에 DOCKER_HUB_PASSWORD를 선택한다.
Build Steps에서 add - Execute shell을 선택하고
# 대문자 'CD'면 안됨!
cd infra-services/eureka
chmod +x ./gradlew
./gradlew build
# Docker 이미지 빌드
docker build -t bangjinseong/eureka:${BUILD_NUMBER} -f Dockerfile .
# Docker Hub에 로그인 (이 부분은 Jenkins가 Docker Hub에 로그인 할 수 있도록 설정되어 있어야 합니다)
echo $DOCKER_HUB_PASSWORD | docker login -u $DOCKER_HUB_USERNAME --password-stdin
# Docker 이미지 푸시
docker push bangjinseong/eureka:${BUILD_NUMBER}
# 최신 이미지 pull 및 실행
docker pull bangjinseong/eureka:${BUILD_NUMBER}
# 이미 실행중인 동일한 이미지가 있으면 중지
CONTAINER_ID=$(docker ps -q --filter "publish=8761")
if [ ! -z "$CONTAINER_ID" ]; then
docker stop $CONTAINER_ID
docker rm $CONTAINER_ID
fi
docker run -d -p 8761:8761 bangjinseong/eureka:${BUILD_NUMBER}
을 본인의 프로젝트에 잘 맞게 설정한다.
설정을 완료하였으면 project에서 push가 발생했을 때 webhook으로 잘 인식받아 알아서 배포 업데이트가 되는 것을 확인할 수 있다.