1. Jenkins 이미지 Docker Hub에서 pull
docker pull jenkins/jenkins:lts
2. Jenkins 컨테이너 실행 (out of docker 방식)
sudo docker run -d -p 9090:8080 -v /var/run/docker.sock:/var/run/docker.sock -v /jenkins:/var/jenkins_home --name jenkins -u root jenkins/jenkins:lts
- docker run : Docker 컨테이너를 실행합니다.
- -d : detached mode 로 실행합니다. (백그라운드에서 실행)
- -p 9090:8080 : 호스트와 컨테이너 간의 포트 매핑을 지정합니다. 호스트의 9090 포트를 컨테이너의 8080 포트로 매핑합니다.
- -v /var/run/docker.sock:/var/run/docker.sock : 호스트의 /var/run/docker.sock 파일을 컨테이너 내부의 /var/run/docker.sock 파일로 볼륨 마운트합니다. 이는 Docker 컨테이너 내부에서 Docker 데몬에 접근하기 위한 것입니다.
- -v /jenkins:/var/jenkins_home : 호스트의 /jenkins 디렉토리를 컨테이너 내부의 /var/jenkins_home 디렉토리로 볼륨 마운트합니다. 이는 Jenkins 설정 파일 및 빌드 기록 등을 호스트에 저장하기 위한 것입니다.
- --name jenkins : 컨테이너의 이름을 jenkins 로 지정합니다.
- -u root : 컨테이너 내부에서 실행되는 프로세스의 UID 를 root 유저로 지정합니다. 이는 호스트에서 Docker 데몬에 접근하기 위해 필요한 권한을 부여하기 위한 것입니다.
- jenkins/jenkins:lts : Jenkins 를 실행하는 Docker 이미지를 지정합니다. lts 태그는 Jenkins 의 LTS 버전을 의미합니다.
http://{server host}:8080으로 접속
bash에서 비밀번호 확인
docker logs jenkins
확인한 비밀 번호 Jenkins 페이지에서 입력
'Install suggested plugins' 선택
계정 정보는 본인이 설정하고 싶은 대로 설정. (이후 젠킨스 접속 시 해당 정보 입력)
플러그인 추가 설치
docker restart {container_id 도는 container name}
: gitlab webhook 등록 시 필요한 credential 등록
1-1. gitlab에서 accessToken 생성
1-2. Jenkins에 credential 등록
Add Credentials
클릭고급
버튼은 나중에 gitlab에서 webhook 설정 시 사용# Execute shell 부분에 입력
docker build -t d101-server ./backend
docker rm -f d101-server || true
docker run -d -p 8090:8090 --name d101-server d101-server
webhook secret token 정보 입력 : "jenkins 빌드 유발 ➡ 고급탭
➡ secret token Generate
버튼 클릭"
webhook test
: 위와 같이 webhook 설정 및 생성 후, 아래와 같이 test탭이 생긴다.
➡ test에서 지정한 trigger 선택 후 아래와 같이 200 응답이 오면 정상적으로 webhook이 설정된것