깃랩 서버를 장기간 업데이트하지 않으면 최신버전으로 업그레이드 시 필수 업그레이드 중지를 무조건 설치해야 합니다.

위 사진과 같이 16.2.1 에서 18.5.0 (글 작성 기준 최신버전) 으로 업데이트하려면 여러번 버전을 교체해야 합니다.
기존에는 깃랩 서버를 업그레이드 하려면 아래와 같은 명령을 실행해야 했습니다.
docker stop gitlab # 컨테이너가 이미 종료되었다면 생략 가능 docker rm gitlab docker rmi $(docker images | grep gitlab/gitlab-ce | awk '{ print $3 }') docker pull gitlab/gitlab-ce:<새 버전 태그>docker run -d --name gitlab -p 30022:22 -p 30080:80 -p 30443:443 gitlab/gitlab-ce:<새 버전 태그>
watch curl -sf <서버URL> -o /dev/null -w "%{http_code}" # 만약 HTTP 코드가 200으로 표시된다면 'q' 키를 눌러 종료
watch docker ps -a # 만약 컨테이너의 status 가 healthy 로 표시된다면 'q' 키를 눌러 종료
docker exec gitlab gitlab-ctl status
docker exec gitlab gitlab-ctl reconfigure
docker exec gitlab gitlab-ctl pg-upgrade
docker exec gitlab gitlab-rake db:migrate
docker exec gitlab gitlab-ctl restart
# 모든 작업 완료 후 추가로 설치할 태그가 있다면 처음부터 계속....
업그레이드 중 매우 많은 시간이 소요되어 자동화 스크립트를 제작하게 되었습니다.
만약 업그레이드 도중 문제가 발생할 경우, 마지막으로 성공한 태그로 다운그레이드 기능을 제공합니다. 대부분의 경우에는 다운그레이드 완료시 스크립트를 다시 실행하면 문제가 해결됩니다. (이 경우, 서버 내 DB 마이그레이션이 아직 완료되지 않았을 경우로 사료됩니다.)
참고사항
이 스크립트는 Linux/UNIX/Darwin (macOS) 를 지원하며, Windows의 경우 WSL 또는 mingw 등의 리눅스 에뮬레이터로 실행할 수 있습니다. 단, 리눅스 에뮬레이터 내 docker 가 설치되어 있거나 Windows용 docker 실행파일이 링크되어 있어야 합니다.
스크립트 실행 중 예기치 않은 오류로 인해 데이터가 유실될 수 있으므로, 스크립트 실행 전 먼저 서버의 데이터를 백업하는 것을 권장합니다.
댓글 (1)
-
커커널패닉
작성자
25.10.19 · 119.♡.59.225
댓글을 작성하려면 이 필요합니다.
```bash
curl -fsSLO https://gitlab.com/unstable-code/upgrade-gitlab/-/raw/master/upgrade-gitlab?ref_type=heads
chmod 755 upgrade-gitlab
./upgrade-gitlab
```
본문에 위 명령 입력시 오류가 발생하여 댓글로 대신합니다.