Jenkins 를 설치한다.
설치는 컨테이너로 하며, 다음과 같이 컴포즈 파일을 작성해주고 서비스할 포트를 매핑한다.
version: "3"
services:
jenkins:
image: jenkins/jenkins:lts-jdk11
container_name: jenkins
privileged: true
#restart: always
ports:
- 15000:8080
environment:
- TZ=Asia/Seoul
- JAVA_OPTS="-Duser.timezone=Asia/Seoul -Xmx1024m -Xms1024m -XX:+UseG1GC -XX:+AlwaysPreTouch -XX:+UseStringDeduplication -XX:+ParallelRefProcEnabled -XX:+DisableExplicitGC"
volumes:
#- ./var/run/docker.sock:/var/run/docker.sock
- ./data:/var/jenkins_home
#- /etc/localtime:/etc/localtime:ro
이때 마운트 하는 디렉토리의 권한 설정을 잘 해주어야 한다.
# 일반 사용자 계정일 경우
mkdir data
chown -R userName:docker data
# root 사용자일 경우
mkdir data
chown -R docker:root data
컨테이너를 실행하고 잠시 기다리면 컨테이너 로그에 설치 진행을 위한 임시 비밀번호가 출력된다.
출력된 비밀번호를 복사한 후, 브라우저를 열어 Jenkins 서비스 페이지에 접속한다.
본 예시에서는 http://127.0.0.1:15000
복사한 패스워드를 입력 후 진행하면 Jenkins Customize 화면이 보여지는데, 이때 Jenkins 가 제안하는 플러그인을 설치하도록 하자. 만일 Jenkins 사용에 익숙한 사용자라면 커스터마이징을 통해 플러그인 설정을 완료해 준다.
이후 한동안 jenknis 가 플러그인을 설치하게 된다.
설치가 완료되었으나, 플러그인들이 제대로 설치되지 않았다면..
Jenkins 컨테이너 쉘에서 직접 CLI 로 설치를 진행해보면 원인 파악에 도움이 된다.
필자가 설치를 진행하는 동안 겪은 플러그인 실패 원인은 주로 다음의 "NoHttpResponseException" 이었다.
스택오퍼플로우를 참조하면 "오래된, 어쩔 수 없는, 그러나 여러번 시도하다 보면 되는" 버그라고 한다.
다음 명령어를 통해 설치가 실패한 플러그인을 설치가 될 때까지 터미널창에서 설치를 시도한다.
jenkins-plugin-cli --verbose --plugins ${플러그인1} ${플러그인2}
만일 기존에 사용하던 Jenkins 서버가 있고, 해당 서버에서 사용중이던 플러그인을 그대로 사용하고 싶다면, jenkins_home 의 plugins 디렉터리 내용을 복사해 주고 서버를 재기동 한다.
Maven 빌드를 사용하는 경우, Global Tool Configuration 메뉴에 진입하여 apache download 기반 maven 설치를 진행해주도록 하자.
'IT > 형상관리' 카테고리의 다른 글
GitLab 으로 소스코드 관리하기 (0) | 2022.05.29 |
---|---|
Git 저장소의 커밋 기록에서 대용량 파일을 삭제하기 (0) | 2022.05.10 |
Gitlab root 패스워드 변경 방법 (0) | 2021.06.17 |
SVN CLI 사용 방법 (0) | 2021.03.30 |
레포지터리 이관하기 - Git 저장소(레포지터리) 원격지 변경 (0) | 2021.03.26 |