ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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>
    • 젠킨스 내부에서 설정 내용을 유지하려면 도커 컨테이너를 삭제하지 않고 중지했다가, 다시 실행시키면 된다. 컴퓨터를 종료해도 중지된 도커 컨테이너는 남아있는다. 중지했다가 다시 실행할 경우, 이전에 주었던 옵션들도 그대로 유지되어 실행된다.
Designed by Tistory.