Portainer를 사용하여 Docker로 GitLab 실행하기 🚀

이 글은 Portainer를 사용하여 Docker 컨테이너로 GitLab을 설치하는 방법을 단계적으로 설명합니다. Portainer의 편리한 웹 UI를 활용하면 복잡한 설정 없이 GitLab을 쉽게 배포하고 관리할 수 있습니다.


 

1. GitLab Docker Compose 파일 준비

 

GitLab은 여러 서비스(Git, CI/CD, 레지스트리 등)를 포함하므로 단일 명령어로 실행하기보다는 Docker Compose를 사용하는 것이 권장됩니다. Portainer의 Stacks 기능을 활용하면 Docker Compose 파일을 통해 서비스를 한 번에 배포할 수 있습니다.

docker-compose.yml 파일을 다음과 같이 작성합니다.

YAML

version: '3.8'

services:
  gitlab:
    image: gitlab/gitlab-ce:latest
    container_name: gitlab
    restart: always
    hostname: 'gitlab.example.com'
    ports:
      - "80:80"
      - "443:443"
      - "22:22"
    volumes:
      - ./config:/etc/gitlab
      - ./logs:/var/log/gitlab
      - ./data:/var/opt/gitlab
    shm_size: '256m'
    environment:
      GITLAB_OMNIBUS_CONFIG: |
        gitlab_rails['gitlab_shell_ssh_port'] = 22
        external_url 'http://gitlab.example.com'
  • image: 공식 GitLab Community Edition 이미지를 사용합니다.
  • ports: HTTP (80), HTTPS (443), SSH (22) 포트를 외부로 노출합니다.
  • volumes: GitLab의 설정, 로그, 데이터를 호스트 머신에 영구적으로 저장하기 위한 볼륨을 설정합니다.
  • hostname: GitLab 서비스에 접속할 도메인 또는 IP를 설정합니다.
  • environment: GITLAB_OMNIBUS_CONFIG를 통해 GitLab 설정을 커스터마이징합니다. gitlab_shell_ssh_port를 22로 설정하고, external_url을 여러분의 서버 주소로 변경해야 합니다.

 

2. Portainer를 통한 GitLab 스택 배포

 

이제 Portainer 웹 UI를 통해 GitLab 서비스를 배포합니다.

 

2.1 Stacks 메뉴로 이동

 

Portainer 대시보드에 접속하여 왼쪽 메뉴에서 **Stacks**를 클릭합니다.

 

2.2 새로운 스택 추가

 

Add stack 버튼을 클릭하여 새로운 스택 생성 페이지로 이동합니다.

  • Name: 스택 이름을 **gitlab**으로 지정합니다.
  • Web editor: 위에서 작성한 docker-compose.yml 파일 내용을 복사하여 붙여넣습니다.

 

2.3 스택 배포

 

모든 설정이 올바르게 입력되었는지 확인한 후, 하단의 Deploy the stack 버튼을 클릭합니다. Portainer가 GitLab 이미지를 다운로드하고 컨테이너를 생성하여 실행합니다. GitLab의 규모가 크기 때문에 다운로드 및 컨테이너 생성에 다소 시간이 소요될 수 있습니다.


 

3. GitLab 접속 및 초기 설정

Portainer를 사용하여 Docker로 GitLab 실행하기 🚀

GitLab 컨테이너가 정상적으로 실행되면 웹 브라우저를 통해 접속할 수 있습니다.

 

3.1 GitLab 접속

 

  • external_url에 설정한 주소(예: http://gitlab.example.com) 또는 **http://<서버IP>**로 접속합니다.
  • 초기 접속 시, GitLab은 502 Bad Gateway 오류를 표시할 수 있습니다. 이는 GitLab 서비스가 완전히 시작되지 않았기 때문입니다. 5~10분 정도 기다린 후 새로고침하면 정상적인 로그인 화면이 나타납니다.

 

3.2 관리자 비밀번호 재설정

 

GitLab의 초기 관리자 계정은 root이며, 비밀번호는 무작위로 생성됩니다. 다음 명령어를 통해 비밀번호를 재설정할 수 있습니다.

  1. Portainer의 Containers 메뉴로 이동하여 gitlab 컨테이너를 선택합니다.
  2. 상단의 Exec console 버튼을 클릭하여 컨테이너 터미널에 접속합니다.
  3. 터미널에서 다음 명령어를 실행하여 GitLab Rails 콘솔에 접속합니다.
    Bash

    gitlab-rails console
    
  4. 콘솔에서 다음 명령어를 입력하여 비밀번호를 재설정합니다.
    Ruby

    user = User.where(id: 1).first
    user.password = '새로운 비밀번호'
    user.password_confirmation = '새로운 비밀번호'
    user.save!
    

    새로운 비밀번호 부분에 원하는 비밀번호를 입력하고 엔터를 누릅니다. true가 반환되면 비밀번호가 성공적으로 변경된 것입니다.

이제 root 계정과 새로 설정한 비밀번호로 GitLab에 로그인하여 프로젝트를 생성하고 관리할 수 있습니다.