-
Jenkins Docker EC2를 활용한 React - Springboot CI/CD(3)CI,CD 및 배포 2024. 3. 10. 13:51
Docker Desktop이 설치되어 있지 않으면 설치한다.
(설치 방법 https://goddaehee.tistory.com/251 참고)
- 로컬에서는 cmd 창에서 docker 명령어를 사용하기 위해서는 docker desktop이 켜져 있어야 한다. (Docker Engine역할을 한다)
Docker로 Jenkins 설치하기(cmd창 입력)
1. Jenkins 이미지 파일 내려받기(lts 버전)
docker pull jenkins/jenkins:lts
2. 내려받아진 이미지 확인
docker images
3. Jenkins 이미지를 Container로 실행
docker run -d -p 8080:8080 -p 50000:50000 -v /jenkins:/var/jenkins -v /home/ubuntu/.ssh:/root/.ssh -v /var/run/docker.sock:/var/run/docker.sock --name jenkins -u root jenkins/jenkins:lts
더보기- docker run: Docker 컨테이너를 실행하는 데 사용되는 명령입니다.
- d: 이 플래그는 "detached" 모드를 나타내며, 컨테이너가 백그라운드에서 실행됩니다.
- p 8080:8080: 이 옵션은 호스트의 포트 8080을 컨테이너의 포트 8080으로 매핑합니다. 일반적으로 Jenkins는 포트 8080에서 실행됩니다.
- p 50000:50000: 이 옵션은 호스트의 포트 50000을 컨테이너의 포트 50000으로 매핑합니다. 포트 50000은 분산 빌드에 사용됩니다.
- v /jenkins:/var/jenkins: 이 옵션은 호스트의 /jenkins 디렉토리를 컨테이너의 /var/jenkins 디렉토리에 마운트합니다. 이는 Jenkins 데이터를 지속시키기 위해 사용됩니다.
- v /home/ubuntu/.ssh:/root/.ssh: 이 옵션은 호스트 사용자의 홈 디렉토리에 있는 .ssh 디렉토리를 컨테이너 내의 root 사용자의 .ssh 디렉토리에 마운트합니다. 이는 Jenkins에서 다른 서버로 SSH 액세스를 활성화하기 위해 일반적으로 수행됩니다.
- v /var/run/docker.sock:/var/run/docker.sock: 이 옵션은 호스트의 Docker 소켓을 컨테이너의 Docker 소켓에 마운트합니다. 이를 통해 컨테이너에서 호스트의 Docker 데몬과 상호 작용하여 Jenkins 컨테이너 내에서 Docker 명령을 실행할 수 있습니다.
- -name jenkins: 이 옵션은 컨테이너에 "jenkins"라는 이름을 할당합니다.
- u root: 이 옵션은 컨테이너 내의 사용자를 "root"로 설정합니다. Jenkins가 다양한 작업을 수행하기 위해 필요한 권한을 부여하기 위함입니다.
- jenkins/jenkins:lts: 이것은 실행할 Docker 이미지를 지정합니다. 공식 Jenkins Docker 저장소에서 Jenkins LTS (장기 지원) 이미지를 지정합니다.
4. 돌아가고 있는 Container 확인
docker ps
Jenkins 접속(localhost:8080)
- localhost:8080-p 8080:7070이렇게 실행을 하면 우리는 로컬 pc에서 도커 내부에 있는 jenkins를 들여다 볼 수 없다. -p 옵션으로 포트 포워딩을 할 때 기왕이면 포트 번호를 일치시키는 게 나중 설정에 있어헷갈릴 일도 없고 수월하다.
- 도커 내부에서 jenkins는 기본적으로 8080포트로 실행 된다. 위 옵션에서 -p 8080:8080옵션으로 컨테이너 내부포트와 호스트(내 pc)8080포트를 포트 포워딩 해주었기 때문에 로컬 pc에서 localhost:8080으로 도커 내부에서 실행 중인 jenkins에 접속할 수 있다.
1. 암호 입력
// Container에 접속하지 않고 확인 $ docker logs jenkins # 여기서 젠킨스 접속 암호를 확인할 수 있다
2. Install suggested plugins로 플러그인 설치
3. Jenkins 계정 생성까지 하자
더보기- 도커 컨테이너를 중지하고 나중에 다시 실행할 경우
- docker stop <컨테이너_이름_또는_컨테이너_ID>
docker stop jenkins
- 모든 컨테이너 목록 확인(실행 중, 중지 포함)
docker ps -a
- docker start <컨테이너_이름_또는_컨테이너_ID>
- 젠킨스 내부에서 설정 내용을 유지하려면 도커 컨테이너를 삭제하지 않고 중지했다가, 다시 실행시키면 된다. 컴퓨터를 종료해도 중지된 도커 컨테이너는 남아있는다. 중지했다가 다시 실행할 경우, 이전에 주었던 옵션들도 그대로 유지되어 실행된다.
'CI,CD 및 배포' 카테고리의 다른 글
Jenkins Docker EC2를 활용한 React - Springboot CI/CD (6)-1 React만 해당 (0) 2024.03.10 Jenkins Docker EC2를 활용한 React - Springboot CI/CD(5) (0) 2024.03.10 Jenkins Docker EC2를 활용한 React - Springboot CI/CD(4) (0) 2024.03.10 Jenkins Docker EC2를 활용한 React - Springboot CI/CD(2) (0) 2024.03.10 Jenkins Docker EC2를 활용한 React - Springboot CI/CD(1) (0) 2024.03.09