1. 머신에서 jenkins 실행
Dockerfile과 run.sh를 통해 컨테이너를 실행시킨다.
> cd server_test
> bash jenkins/sbin/run.sh
Plain Text
복사
localhost나 사설 IP의 9090 포트를 통해 Jenkins의 Web UI에 접속할 수 있다.
2. jenkins 플러그인 설치 - Gitlab, Docker, Github
Gitlab, Docker, Github을 검색하여 이것저것 설치해주자
3. Global Credential 추가
Jenkins 관리 - Manage Credentials 메뉴에서 설정할 수 있다.
Github과 연동 시 Server와 Repository의 두가지 credential이 필요하고,
Gitlab과 연동 시 Server와 Gitlab, repository의 세가지 credential이 필요하다.
Gitlab의 credential은 Personal Access Token
Git Server의 credential은 Secret Text
Git Repo의 credential은 Username and password 가 필요하다.
접근 권한은 기본적으로 repo, admin:repo_hook, admin:org가 필요하다.
4. Github Server 추가
Jenkins 관리 - 시스템 설정 메뉴에서 설정할 수 있다.
API URL은 기본값으로, Credentials은 미리 생성한 Secret Text, Manage Hooks에 체크를 하고 Test Connection을 진행한 후 저장한다.
5. Github Webhook 트리거 설정
연동 할 Github Repository의 Webhooks 메뉴에서 설정할 수 있다.
Repository에 특정 이벤트가 발생할 시 Github에서 POST 요청으로 설정한 url로 알려준다. Jenkins에서 트리거를 받아올 수 있도록 Repository 설정을 추가해주도록 하자.
퍼블릭 도메인이 없는 사설 주소에서 Jenkins를 실행하고 있다면 webhook를 받아올 수 없다.
도메인 네임이 없는 서버라면 ngrok를 사용하도록 하자
6. 새 프로젝트 생성
+Item 메뉴를 통해 프로젝트를 생성할 수 있다.
Freestyle Project를 선택해준다.
소스코드 관리를 Git으로 설정한 후, Repository URL과 username and password Credential, main branch명을 설정해준다.
빌드 유발은 플러그인을 통해 설치한 GitHub hook trigger for GITScm polling을 선택한다.
Build step는 Execute Shell으로 설정하여 push trigger가 발동될 때 마다 실행할 스크립트를 작성한다.
docker build -t node:custom .
docker run -d -it -u root -p 8080:8080 --name app_container node:custom /bin/bash
docker exec app_container npm install --prefix /var/vue_app
docker exec app_container npm run build --prefix /var/vue_app
docker exec app_container npm run serve --prefix /var/vue_app &
Plain Text
복사
7. 배포 테스트
지금 빌드 버튼을 통해 정상 빌드를 테스트 한다. 해당 로그는 Console output 메뉴에서 혹인할 수 있다.