티스토리 뷰

팀내에 사용중이던 Gitlab CE 가 최근에 하드가 사망하여 재구축해야하는 상황이 발생됬다.

매일 백업되던 Backup 파일로 재구축은 하였으나 백업된 파일이 구버전이기에 최신버전의 도커 이미지로 구축시 에러가 발생했다.

(괜한 욕심이였나 싶기도하고,,)

 

기존 12.2.5 버전 -> 목표 17 버전

 

업그레이드 과정은 어찌보면 간단하다.

Docker Image를 교체해주면 Gitlab 컨테이너 자체에서 마이그레이션을 진행해준다.

 

가이드 

https://docs.gitlab.com/ee/install/docker/upgrade.html

 

Upgrade | GitLab

GitLab product documentation.

docs.gitlab.com

유의점

- 현재 실행되는 도커 컨테이너의 백업 필수

- 현 도커의 Volume 패스 확인

   -> 호스트 머신의 Volumn으로 지정된 Path에 Git Container의 설정 및 데이터들이 남아있기에 업그레이드 과정중에 도커 컨테이너를 삭제해도 기존 데이터를 가지고 마이그레이션을 진행하는 원리 

 

업그레이드 과정

1. 도커 Git 컨테이너 중지

 - docker stop {git-container-name}

 

2. 도커 Git 컨테이너 삭제

 - docker rm {git-container-name}

 

3. 도커 Git 이미지 Pull 받기

 - docker pull gitlab/gitlab-ce:<version>-ce.0

 

4. GITLAB_HOME 환경 변수 확인

 

5. 신규 이미지로 도커 컨테이너 실행

docker run --detach

--hostname gitlab.example.com

--publish 443:443 --publish 80:80 --publish 22:22

--name gitlab

--restart always

--volume $GITLAB_HOME/config:/etc/gitlab

--volume $GITLAB_HOME/logs:/var/log/gitlab

--volume $GITLAB_HOME/data:/var/opt/gitlab

--shm-size 256m

 

위의 과정을 계속 업그레이드를 하면서 따라가면 된다.

GITLAB_HOME 환경변수는 지정하기 귀찮아 나는 

--volume /srv/gitlab/config:/etc/gitlab 와 같이 /srv/gitlab을 명시했다.

이렇게 셋팅하면 /srv/gitlab 패스로 도커 깃 컨테이너와의 연결 경로가 생긴다.

 

에러 로그 확인

>> sudo docker logs gitlab -f

에러 로그를 확인하면서 마이그레이션을 진행해야한다. 

-f 옵션은 실시간 로그를 확인하려면 사용

 

 

호기롭게 최신이미지 16버전의 이미지를 Pull 받고 실행하려고 했으나 에러발생.

12.2.5 -> 16.11.8 업그레이드 실패

 

최소 16.7 버전을 설치하라는 안내 문구에 따라 해당 버전의 이미지를 Pull 받고 재시도 하였으나 계속 실패..

 

12.2.4 -> 14 업그레이드 실패

14버전으로 낮췄음에도 동일한 에러발생

무언가 잘못됬음을 직감하고 가이드를 다시 정독하였다.

https://docs.gitlab.com/ee/update/plan_your_upgrade.html

 

Create a GitLab upgrade plan | GitLab

GitLab product documentation.

docs.gitlab.com

 

가이드에 따르면 업그레이드 계획을 세워야한다.

https://gitlab-com.gitlab.io/support/toolbox/upgrade-path/

 

Upgrade Path

 

gitlab-com.gitlab.io

 

Gitlab에서 제공하는 위의 사이트에서 현제 버전과 타겟 버전, 에디션과 설치유형을 선택하여 Go! 를 누른다.

 

앞으로 위의 단계에 따라.. 업그레이드를 진행해야한다. (ㅜㅜ)

그나마 13버전까지는 단순히 이미지 교체작업만 해주면 되기에 큰 에러없이 13버전까지 업그레이드는 성공했다.

 

업글 성공

 

다만 14버전 이후 부터는 백그라운드 마이그레이션 작업이 선행되어야지 업그레이드 가능하다.

다음 포스트에 이어서..