Docker Compose 사용하여 GitLab 설치

Ubuntu 18.04 LTS에 Docker Compose를 사용하여 Omnibus GitLab 설치할 수 있습니다.

사전 조건

  • 온프레미스(On-premise) 또는 클라우드(Cloud)에 Ubuntu 18.04 LTS 인스턴스가 구동 중이어야 합니다.
  • Ubuntu 18.04 LTS에 Docker Engine이 설치되어 있어야 합니다.
  • Ubuntu 18.04 LTS에 Docker Compose가 설치되어 있어야 합니다.
  • SSH를 사용하여 Ubuntu 18.04 LTS 인스턴스에 연결되어 있어야 합니다.

GitLab Docker 이미지

GitLab Docker 이미지는 단일 컨테이너에서 필요한 모든 서비스를 실행하는 GitLab의 모놀리식(Monolithic) 이미지입니다.

GitLab CE와 EE 이미지는 모두 Docker Hub에 있습니다.

볼륨 위치 설정

다른 모든 것을 설정하기 전에, 구성(Configuration), 로그 및 데이터 파일이 상주할(reside) 디렉터리를 가리키는 새 환경 변수 $GITLAB_HOME를 구성해야 합니다. 디렉터리가 존재하고 적절한 권한이 부여되었는지 확인합니다.

Vim 에디터로 ~/.bashrc 파일을 열어서 맨 마지막 줄에 아래 내용을 추가하고 저장합니다.

export GITLAB_HOME=/srv/gitlab
vim ~/.bashrc
source ~/.bashrc

GitLab 컨테이너는 호스트 마운트 볼륨을 사용하여 영구 데이터를 저장합니다.

Local locationContainer locationUsage
$GITLAB_HOME/data/var/opt/gitlab애플리케이션 데이터 저장용
$GITLAB_HOME/logs/var/log/gitlab로그 저장용
$GITLAB_HOME/config/etc/gitlabGitLab 구성 파일 저장용

docker-compose.yml 파일 준비

GitLab CE 작업 디렉터리 (Working directory)를 생성합니다.

cd ~/
mkdir gitlab-ce
cd gitlab-ce

docker-compose.yml 파일을 생성합니다.

touch docker-compose.yml
vim docker-compose.yml

아래와 같이 내용을 추가하고 저장합니다.

web:
image: "gitlab/gitlab-ce:12.2.5-ce.0"
restart: always
hostname: "gitlab.example.com"
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url 'https://gitlab.example.com'
# Add any other gitlab.rb configuration here, each on its own line
ports:
- "80:80"
- "443:443"
- "22:22"
volumes:
- "$GITLAB_HOME/config:/etc/gitlab"
- "$GITLAB_HOME/logs:/var/log/gitlab"
- "$GITLAB_HOME/data:/var/opt/gitlab"
참고

image에 gitlab/gitlab-ce:latest 또는 gitlab/gitlab-ee:latest를 지정하면 CE/EE 최신 버전의 GitLab이 설치되고, 특정 태그 버전의 이미지를 사용하면 해당 버전의 GitLab이 설치됩니다.

Docker Compose를 사용하여 GitLab 시작

작업 디렉터리에 docker-compose.yml 파일이 있는지 확인합니다.

$ ls -al
total 12
drwxrwxr-x 2 ubuntu ubuntu 4096 Sep 1 07:30 .
drwxr-xr-x 7 ubuntu ubuntu 4096 Sep 1 07:30 ..
-rw-rw-r-- 1 ubuntu ubuntu 500 Sep 1 07:29 docker-compose.yml

아래 명령을 실행하여 GitLab을 시작합니다.

$ docker-compose up -d
Creating gitlab-ce_web_1 ... done

아래 명령을 실행하면 GitLab 구동 로그를 확인할 수 있습니다.

docker-compose logs -f

아래 명령을 실행하여 container 목록을 확인할 수 있습니다.

$ docker-compose ps -a
Name Command State Ports
-----------------------------------------------------------------------------------------------------------------
gitlab-ce_web_1 /assets/wrapper Up (healthy) 0.0.0.0:22->22/tcp, 0.0.0.0:443->443/tcp, 0.0.0.0:80->80/tcp

GitLab 설치 확인

설치한 GitLab CE가 정상 동작하는지 Web으로 접속하여 확인합니다.

external_url로 설정했던 https://gitlab.example.com에 접속합니다. 처음 접속하면 Admin 계정의 비밀번호 변경 페이지로 리다이렉트(Redirect) 됩니다.

GitLab Admin 비밀번호 변경 | 인포그랩 GitLab

비밀번호와 비밀번호 확인을 입력한 후 Change your password 버튼을 클릭합니다. 새로운 비밀번호가 설정되고 Sign in 페이지로 리다이렉트 됩니다.

GitLab Admin 로그인 | 인포그랩 GitLab

Username에 'root', Password에 설정한 비밀번호를 입력한 후 Sign in 버튼을 클릭하여 로그인합니다.

로그인한 다음, 상단 메뉴바의 렌치(Wrench) 아이콘을 클릭하여 Admin Area 페이지로 이동합니다.

GitLab Admin 대시보드 | 인포그랩 GitLab

GitLab Components의 버전 정보를 확인할 수 있습니다.

참고

Install Docker Engine on Ubuntu
Install Docker Compose

깃랩 문서 바로가기