본문 바로가기
개발 이야기/Generals

Jenkins apt 로 설치된 서버에서 docker 기반 서버로 마이그레이션하기

by _ppuing 2026. 1. 13.
반응형

Ubuntu 18.04 에 apt 로 설치된 Jenkins 를 Ubuntu 22.04 새 서버로 이전할 필요가 생겼다. (서버 보안을 위해 OS 업데이트) 

해당 문서는 빌드들을 다 새로 정의하기엔 힘들기 때문에 세팅을 그대로 옮길 필요가 있어 마이그레이션 하는 방법을 기록한다. 

더보기

과거 문서(Ubuntu에 Jenkins 설치하기 w/ apt) : https://blog.ppuing.me/86

 

1단계: 기존 서버 데이터 백업

# 1. 젠킨스 서비스 중단
sudo systemctl stop jenkins

# 2. 젠킨스 홈 디렉토리로 이동 (기본값: /var/lib/jenkins)
cd /var/lib/jenkins

# 3. 전체 데이터 압축 (설정, 잡 히스토리, 플러그인 등 포함)
# --exclude를 사용해 캐시나 로그 등 불필요한 파일은 제외하면 용량이 줄어듭니다.
sudo tar -cvzf ~/jenkins_backup.tar.gz .

2단계: 신규 서버 환경 설정 

Docker와 Docker Compose 를 설치한다. 

# 1. 도커 설치
sudo apt update
sudo apt install docker.io -y
sudo apt install docker-compose-v2 -y
sudo systemctl enable --now docker

# 2. 현재 사용자를 docker 그룹에 추가 (로그아웃 후 재접속 필요)
sudo usermod -aG docker $USER

3단계: 데이터 복사 및 권한 설정

# 1. 기존 서버에서 새 서버로 백업 파일 전송 (새 서버에서 실행)
scp user@구서버_IP:~/jenkins_backup.tar.gz ~/

# 2. 젠킨스 데이터를 저장할 디렉토리 생성
mkdir ~/jenkins_home

# 3. 압축 해제
tar -xvzf ~/jenkins_backup.tar.gz -C ~/jenkins_home

# 4. 중요: 권한 변경
# 도커 내부의 젠킨스 사용자는 기본적으로 UID 1000을 사용합니다.
# 호스트의 디렉토리 권한을 1000으로 맞춰줘야 도커가 파일을 읽고 쓸 수 있습니다.
sudo chown -R 1000:1000 ~/jenkins_home

4단계: Docker Compose 로 Jenkins 실행

관리 편의성을 위해 docker-compose.yml 파일을 작성한다.

cd ~
vi docker-compose.yml

아래 내용을 작성

version: '3'
services:
  jenkins:
    image: jenkins/jenkins:lts  # 최신 LTS 버전 사용
    container_name: jenkins
    restart: unless-stopped
    ports:
      - "8080:8080"
      - "50000:50000"
    volumes:
      - ./jenkins_home:/var/jenkins_home
    environment:
      - TZ=Asia/Seoul

실행:

docker compose up -d

5단계 (선택) : 미래의 버전 관리 및 업데이트 방법

1. 이미지 다운로드: docker compose pull jenkins

2. 재시작: docker compose up -d 

3. 이전 버전 복구: 문제가 생기면 image: jenkins/jenkins-{이전버전태그} 로 바꾸고 docker compose up -d 재실행 

6단계 (선택): 다른 서버로의 마이그레이션

1. 기존 서버에서 데이터 백업

# 1. 젠킨스 컨테이너 정지 (데이터 안전 보장)
docker compose down

# 2. 설정 파일과 데이터를 압축 
# jenkins_home 폴더와 docker-compose.yml 파일을 함께 압축
tar -cvzf jenkins_migration.tar.gz ./jenkins_home docker-compose.yml

2. 신규 서버로 전송 및 복구

# 1. 파일 전송 (새 서버에서 실행)
scp user@구서버_IP:~/jenkins_migration.tar.gz ~/

# 2. 압축 해제
tar -xvzf jenkins_migration.tar.gz

# 3. 권한 확인 (도커용 UID 1000 권한 부여)
sudo chown -R 1000:1000 ./jenkins_home

# 4. 바로 실행
docker compose up -d
반응형

댓글