[DevOps] docker-compose로 gitlab 설치하기

안녕하세요? 정리하는 개발자 워니즈입니다. 이번시간에는 docker-compose를 통해서 gitlab을 설치하는 과정에 대해서 정리를 해보고자 합니다. 설치 관련해서는 따로 카테고리를 나눠서 정리를 해볼까 합니다.

소스의 형상 관리를 위해서 소스코드는 반드시 회사 내부 서버에 보관되는 것이 보안적으로 안정적일 것입니다. 따라서 git 서버를 구축해야 했습니다.

서버의 스펙은 다음과 같습니다.

  • Operating System: CentOS 7.8 (64-bit)
  • Server Spec : 4vCPU, 16GB Mem
  • Storage : 1TB

    gitlab_1

1. Docker / Docker-compose 설치

기본적인 linux 환경이기 떄문에 사전에 docker와 docker-compose에 대해서 먼저 설치를 진행합니다.

docker install : https://docs.docker.com/engine/install/ubuntu/

  • docker 설치
# root로 작업합니다. 
yum -y install docker docker-registry
systemctl enable docker.service
systemctl start docker.service
systemctl status docker.service

# docker 프로세스 체크
docker ps -a
  • docker-compose 설치
# root로 작업합니다.
# docker-compose binary 다운로드
sudo curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/bin/docker-compose

# 실행 권한 추가 
sudo chmod +x /usr/bin/docker-compose

# 버전체크 
docker-compose --version

2. Gitlab 설치

gitlab설치를 docker-compose로 설치하게 되면, 명령어 한번이면 가능합니다.

Gitlab community image: https://hub.docker.com/r/gitlab/gitlab-ce/

gitlab의 data repository를 구성해줍니다. gitlab 설치 서버에는 1TB SSD 블록스토리지가 /data 경록에 마운트 되어있습니다.

  • gitlab 데이터 경로 준비
# root로 작업합니다. 
mkdir /data/gitlab
mkdir /data/gitlab/data
mkdir /data/gitlab/logs
mkdir /data/gitlab/config

export GITLAB_HOME=/data/gitlab
source ~/.bashrc
  • gitlab docker-compose yaml 준비
mkdir /data/gitlab-ce
cd /data/gitlab-ce
vi docker-compose.ym
web:
  image: "gitlab/gitlab-ce:latest"
  restart: always
  container_name: gitlab
  environment:
    GITLAB_OMNIBUS_CONFIG: |
      # Add any other gitlab.rb configuration here, each on its own line
  ports:
    - "80:80"
    - "443:443"
    - "20022:22"
  volumes:
    - "$GITLAB_HOME/config:/etc/gitlab"
    - "$GITLAB_HOME/logs:/var/log/gitlab"
    - "$GITLAB_HOME/data:/var/opt/gitlab"
  • gitlab docker-compose 실행
# docker-compose 실행
docker-compose up -d

# docker-compose 프로세스 확인
docker-compose ps
Creating gitlab-ce_web_1 ... done

# 결과
 Name        Command          State                                    Ports
---------------------------------------------------------------------------------------------------------
gitlab   /assets/wrapper   Up (healthy)   0.0.0.0:20022->22/tcp, 0.0.0.0:443->443/tcp, 0.0.0.0:80->80/tcp

3. Gitlab 설치 확인

gitlab이 설치된 서버의 아이피로 접속을 하게 되면, 최초 패스워드 변경에 대한 안내가 나옵니다. root 계정에 대한 변경이오니, 암호를 적절히 셋팅하고 기록해둬야 합니다.

gitlab_2

4. Gitlab 데이터 백업

docker-compose.yml 파일에 명시된 config, logs, data 파일을 백업하게 되면, 해당 데이터만 존재하면 gitlab 어플리케이션을 다시 구동하면 복원이 가능합니다. 따라서, 해당 데이터를 적절히 백업할 방안을 마련하면됩니다. 퍼블릭 클라우드를 사용하는 경우 daily 스토리지 스냅샷을 이용하면 백업이 일자별로 가능합니다.

  volumes:
    - "$GITLAB_HOME/config:/etc/gitlab"
    - "$GITLAB_HOME/logs:/var/log/gitlab"
    - "$GITLAB_HOME/data:/var/opt/gitlab"

5. Gitlab 업그레이드

만약 gitlab 자체를 버전업을 해야되는 경우도, 백업 및 복구와 동일합니다. 현재 구동되는 gitlab의 이미지만 교체하고 원래 마운트 되어있는 볼륨을 이용하면 됩니다. 다만, 업그레이드시에 기존에 사용하던 이미지를 기억해둬야 문제 발생시 복원이 가능합니다.

sudo docker stop gitlab                   # 도커 컨테이너 중지
sudo docker rm gitlab                     # 도커 이미지 삭제
sudo docker pull gitlab/gitlab-ce:latest  # gitlab 최신버전 이미지 받아오기
docker-compose up -d                      # gitlab 실행

6. 마치며..

이번시간에는 docker-compose를 활용한 gitlab 섶치 과정에 대해서 정리를 해보았습니다. 확실히 native 하게 설치하는 것보다 백업 및 복구도 용이하고 docker를 이용하는 것이 훨씬 간편하게 어플리케이션을 설치하고 운용할 수 있을 것 같다는 생각을 해보았습니다. 추후의 블로그 내에서 설치 관련 카테고리를 개설하여 해당 관련 내용만 모아서 포스팅을 할 예정입니다. 많은 관심 부탁드립니다!

7. 참고.

https://lovemewithoutall.github.io/it/start-docker/

https://insight.infograb.net/docs/setup/install/install_with_docker_compose/

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다