AICC 과정 정리

docker-compose로 rabbitMQ, jenkins 세팅하기

미르아 2024. 12. 30. 12:20
728x90

1. Docker Desktop 설치 확인

  • Windows에서는 Docker Compose를 실행하려면 Docker Desktop이 설치되어 있어야 합니다.
  • 최신 Docker Desktop 버전은 Docker Compose가 기본적으로 포함되어 있으므로 별도 설치가 필요 없습니다.

2. docker-compose.yml 파일 작성

아래는 RabbitMQ와 Jenkins를 실행하기 위한 기본 docker-compose.yml 예제입니다:

yaml
코드 복사
version: '3.8'

services:
  rabbitmq:
    image: rabbitmq:management
    container_name: rabbitmq
    ports:
      - "5672:5672" # RabbitMQ 기본 포트
      - "15672:15672" # RabbitMQ 관리 콘솔 포트
    environment:
      RABBITMQ_DEFAULT_USER: admin
      RABBITMQ_DEFAULT_PASS: admin
    volumes:
      - rabbitmq_data:/var/lib/rabbitmq

  jenkins:
    image: jenkins/jenkins:lts
    container_name: jenkins
    ports:
      - "8080:8080" # Jenkins 웹 UI 포트
      - "50000:50000" # Jenkins 에이전트 통신 포트
    volumes:
      - jenkins_home:/var/jenkins_home

volumes:
  rabbitmq_data:
  jenkins_home:


3. 실행 방법

  1. Docker Compose 파일 저장:
    • 위 docker-compose.yml 파일을 프로젝트 폴더에 저장합니다.
    • 예: C:\\Users\\YourUsername\\docker-compose.yml
  2. 명령어 실행:
    • docker-compose.yml 파일이 있는 디렉터리로 이동합니다.
    bash
    코드 복사
    cd C:\\Users\\YourUsername
    
    
    • Docker Compose로 RabbitMQ와 Jenkins 실행:
    bash
    코드 복사
    docker-compose up -d
    
    
    • d 옵션은 백그라운드에서 실행하도록 합니다.
  3. 확인:
    • RabbitMQ 관리 콘솔: http://localhost:15672 (기본 로그인: admin/admin)
    • Jenkins: http://localhost:8080

4. 파일 및 데이터 유지

컨테이너를 재시작하거나 삭제해도 데이터를 유지하려면, volumes를 설정해야 합니다. 위 예제에서 이미 설정된 rabbitmq_data와 jenkins_home 볼륨은 각각 RabbitMQ와 Jenkins 데이터를 지속적으로 저장합니다.


5. 서비스 중지 및 정리

  • 중지:
  • bash 코드 복사 docker-compose down
  • 데이터도 삭제하려면:
  • bash 코드 복사 docker-compose down -v

6. 문제 해결

  • Docker Desktop 실행 여부 확인:
    • Docker Desktop이 실행 중인지 확인하세요.
  • 포트 충돌 문제:
    • 다른 서비스에서 5672, 15672, 8080, 50000 포트를 이미 사용 중이라면 docker-compose.yml에서 포트를 변경하세요.
    • yaml 코드 복사 ports: - "5673:5672" # RabbitMQ 내부 포트를 외부 5673 포트에 연결

7. 커스터마이징

  • Jenkins 초기 설정 비활성화:
    • Jenkins의 초기 설정 마법사를 비활성화하려면 다음과 같이 환경 변수를 추가합니다.
    • yaml 코드 복사 environment: JAVA_OPTS: -Djenkins.install.runSetupWizard=false
  • RabbitMQ 플러그인 활성화:
    • RabbitMQ에 추가 플러그인을 설치하려면 Dockerfile을 작성하거나 관리 콘솔에서 설정 가능합니다.
728x90