Docker Compose 사용하여 GitLab 설치 | DevSecOps 구축 컨설팅, 교육, 기술지원 서비스 제공

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

깃랩 문서 바로가기