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

Docker Compose로 GitLab 설치

Ubuntu Focal 20.04 (LTS) 또는 Ubuntu Bionic 18.04 (LTS)에 Docker Compose를 사용하여 Omnibus GitLab 설치할 수 있습니다.

사전 조건#

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

GitLab Docker 이미지#

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

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

설치 디렉토리 생성#

모든 Repository 데이터를 저장할 수 있을 만큼의 여유 공간이 있는 경로에 GitLab 작업 디렉토리 (Working directory)를 생성합니다.

cd /data
sudo mkdir gitlab
cd gitlab

GitLab 데이터를 영속적(Persistent)으로 저장하기 위한 바인드 마운트(Bind mount)용 디렉토리를 생성합니다.

sudo mkdir data
sudo mkdir logs
sudo mkdir config

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

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

gitlab 디렉토리의 소유권을 $USER로 변경합니다.

sudo chown -R $USER:$USER /data/gitlab

권한을 변경합니다.

sudo chmod -R 755 /data/gitlab

docker-compose.yml 파일 준비#

GitLab 작업 디렉토리(예: /data/gitlab/)에 docker-compose.yml 파일을 생성합니다.

vi docker-compose.yml

아래 내용을 추가하고 저장합니다. (hostnameexternal_url은 설치할 서버의 IP 또는 도메인으로 반드시 수정해야 합니다.)

version: '3.9'
services:
gitlab:
image: "gitlab/gitlab-ee:14.7.2-ee.0"
container_name: gitlab
restart: always
hostname: "gitlab.example.com"
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url 'https://gitlab.example.com'
gitlab_rails['gitlab_shell_ssh_port'] = 8022
# Add any other gitlab.rb configuration here, each on its own line
TZ: 'Asia/Seoul'
ports:
- "80:80"
- "443:443"
- "8022:22"
volumes:
- "./config:/etc/gitlab"
- "./logs:/var/log/gitlab"
- "./data:/var/opt/gitlab"
참고

라이선스 없이 GitLab Enterprise Edition을 설치하면 Community Edition 인스턴스와 동일한 기능을 모두 사용할 수 있으며, 추가적인 이점도 있습니다.

  1. 언제든지 유료 기능을 평가하고 싶다면, 새 인스턴스를 설치 및 구성하거나 기존 인스턴스를 업그레이드하지 않고도 이 작업을 수행할 수 있습니다. GitLab 내에서 평가판을 활성화하기만 하면 됩니다. 유료 기능에 만족하지 않으면 평가판이 만료된 후 인스턴스가 자동으로 무료 기능으로 되돌아갑니다.
  2. Community Edition에서 Enterprise Edition으로 업그레이드하려면 동일한 버전을 사용하고 있는지 확인하고 종종 다운 타임이 필요한 특정 단계를 따라야 합니다. Enterprise Edition을 사용하면 클릭 한 번으로 유료 기능으로 업그레이드할 수 있습니다.

GitLab 시작#

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

ls -al
total 24
drwxr-xr-x 5 ubuntu ubuntu 4096 Mar 22 17:48 .
drwxr-xr-x 3 root root 4096 Mar 22 16:29 ..
drwxr-xr-x 2 ubuntu ubuntu 4096 Mar 22 16:29 config
drwxr-xr-x 2 ubuntu ubuntu 4096 Mar 22 16:29 data
-rw-rw-r-- 1 ubuntu ubuntu 453 Mar 22 17:48 docker-compose.yml
drwxr-xr-x 2 ubuntu ubuntu 4096 Mar 22 16:29 logs

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

$ docker-compose up -d
Creating network "gitlab_default" with the default driver
Pulling gitlab (gitlab/gitlab-ee:14.7.2-ee.0)...
14.7.2-ee.0: Pulling from gitlab/gitlab-ee
a70d879fa598: Pull complete
c4394a92d1f8: Pull complete
10e6159c56c0: Pull complete
e7b52d1609bb: Pull complete
1d81083233cc: Pull complete
0fafeedbe31d: Pull complete
b4f65da4b9ff: Pull complete
3afa5931ec5b: Pull complete
220bde8774a4: Pull complete
Digest: sha256:6bee4b9d36fd055281ea896112440468f2dbc33fddc392c426947b007d3fcb36
Status: Downloaded newer image for gitlab/gitlab-ee:14.7.2-ee.0
Creating gitlab ... done

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

docker-compose logs -f

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

docker-compose ps
Name Command State Ports
---------------------------------------------------------------------------------------------------------------------------------------------------------------
gitlab /assets/wrapper Up (health: starting) 0.0.0.0:8022->22/tcp,:::8022->22/tcp, 0.0.0.0:443->443/tcp,:::443->443/tcp, 0.0.0.0:80->80/tcp,:::80->80/tcp

아래 명령을 실행하여 GitLab root 계정의 초기 패스워드를 확인합니다.

docker exec -it gitlab grep 'Password:' /etc/gitlab/initial_root_password

GitLab 설치 확인#

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

external_url로 설정했던 URL(예: https://gitlab.example.com)에 접속합니다.

GitLab Admin 로그인 | 인포그랩 GitLab

Username에 root, Password에 앞서 확인한 초기 패스워드를 입력한 후 Sign in 버튼을 클릭하여 로그인합니다.

패스워드를 변경합니다.

  • GitLab에서 우측 상단에 있는 아바타를 클릭하고 Edit profile을 선택합니다.
  • User Settings 페이지의 왼쪽 사이드바에서 Password를 클릭합니다.
  • 새 패스워드로 변경합니다.

다시 로그인한 다음, 상단 바에서 Menu > Admin을 선택하여 Admin Area 페이지로 이동합니다.

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

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

참고#

Install Docker Engine on Ubuntu
Install Docker Compose

깃랩 문서 바로가기