compose version
services:
jenkins:
image: jenkins/jenkins:lts-jdk11
container_name: jenkins-server
privileged: true
user: root
ports:
- "8080:8080"
- "50000:50000"
volumes:
- ./jenkins:/var/jenkins_home
- /var/run/docker.sock:/var/run/docker.sock
restart: on-failure
networks:
- jenkins-network
volumes:
jenkins:
networks:
jenkins-network:
name: jenkins-network
docker cli version
network 설정 후 명령어를 실행해야함
docker network create jenkins-network
docker run \
-d \
--name jenkins-server \
--restart on-failure \
--privileged \
-u root \
--network jenkins-network \
-p 8080:8080 \
-p 50000:50000 \
-v ./jenkins:/var/jenkins_home \
-v /var/run/docker.sock:/var/run/docker.sock \
jenkins/jenkins:lts-jdk11
services: Docker Compose로 실행할 서비스(컨테이너)들을 정의하는 영역
image: jenkins/jenkins:lts-jdk11: Jenkins를 실행할 Docker 이미지, 안정적인 장기 지원(LTS) 버전이면서 Java 11이 포함된 이미지를 사용
container_name: jenkins-server: 실행될 컨테이너의 이름을 jenkins-server로 지정,나중에 컨테이너를 관리하기 편리함을 위함
privileged: true & user: root: Jenkins 컨테이너 안에서 Docker 같은 다른 명령어를 실행할 수 있도록 root 권한을 부여하는 설정, Jenkins 파이프라인에서 Docker 빌드 작업을 하려면 필요
ports: 호스트 PC와 컨테이너의 포트를 연결(매핑)
"8080:8080": 호스트 PC의 8080 포트로 들어오는 요청을 Jenkins 컨테이너의 8080 포트로 전달(Jenkins 웹 UI 접속용)
"50000:50000": Jenkins 컨트롤러-에이전트 통신에 사용되는 JNLP 포트를 연결
volumes: 컨테이너의 데이터를 호스트 PC에 저장하여, 컨테이너가 삭제되어도 데이터가 유지
./jenkins:/var/jenkins_home: 현재 폴더(docker-compose.yml 파일이 있는 위치)에 생성될 jenkins 폴더와 컨테이너 내부의 Jenkins 홈 디렉터리를 연결합, Jenkins의 모든 설정, 플러그인, 작업 데이터가 여기에 저장
/var/run/docker.sock:/var/run/docker.sock: 호스트의 Docker 소켓을 컨테이너와 공유, 이를 통해 Jenkins 컨테이너 안에서 호스트의 Docker를 제어(Docker in Docker)
restart: on-failure: 컨테이너가 비정상적으로 종료되었을 때 자동으로 재시작하도록 설정
networks: 컨테이너가 사용할 네트워크를 정의합니다. jenkins-network라는 이름의 브리지 네트워크를 생성
docker-compose -f docker-compose.yml up -d
두 명령어중 선택해서 초기 비밀번호 확인
ex) c7d0e9268a15470592105261b16943b1
docker exec jenkins-server cat /var/jenkins_home/secrets/initialAdminPassword
docker logs jenkins-server
http://localhost:8080으로 웹 접속 후 방금 복사한 초기 비밀번호를 붙여넣고 'Continue' 버튼을 클릭

Install suggested plugins를 선택하면 설치가 진행
* Install suggested plugins: Jenkins 커뮤니티에서 추천하는 필수 플러그인들을 자동으로 설치
* Select plugins to install: 필요한 플러그인을 직접 선택하여 설치

사용자 이름, 비밀번호, 이름, 이메일 주소를 입력하고 'Save and Continue'를 클릭

기본값(http://localhost:8080/)을 그대로 두고 'Save and Finish'를 클릭


