Ubuntu 24.04에 GitLab CE DevOps 관리 스위트 배포

발행: (2026년 5월 27일 AM 12:19 GMT+9)
4 분 소요
원문: Dev.to

출처: Dev.to

개요

GitLab CE(Community Edition)는 소스 코드 관리, CI/CD 파이프라인, 보안 테스트, 프로젝트 계획을 하나의 애플리케이션에 통합한 완전한 오픈소스 DevOps 플랫폼입니다. 이 가이드는 Docker Compose와 Traefik을 사용해 자동 HTTPS를 처리하면서 GitLab CE를 배포하고, 초기 root 비밀번호를 가져오는 방법을 설명합니다. 완료하면 도메인에서 안전하게 실행되는 자체 호스팅 GitLab 인스턴스를 갖게 됩니다.

1. 프로젝트 디렉터리 구조 만들기

mkdir -p ~/gitlab/{config,logs,data,letsencrypt}
cd ~/gitlab

2. 환경 파일 만들기

nano .env

다음 변수를 추가합니다(값은 본인 환경에 맞게 바꾸세요).

GITLAB_DOMAIN=gitlab.example.com
LETSENCRYPT_EMAIL=admin@example.com

3. 현재 사용자를 Docker 그룹에 추가

sudo usermod -aG docker $USER
newgrp docker

4. Docker Compose 매니페스트 만들기

nano docker-compose.yml

다음 내용을 붙여넣습니다.

services:
  traefik:
    image: traefik:latest
    container_name: traefik
    restart: unless-stopped
    environment:
      DOCKER_API_VERSION: "1.44"
    command:
      - "--providers.docker=true"
      - "--providers.docker.exposedbydefault=false"
      - "--entrypoints.web.address=:80"
      - "--entrypoints.websecure.address=:443"
      - "--entrypoints.web.http.redirections.entrypoint.to=websecure"
      - "--entrypoints.web.http.redirections.entrypoint.scheme=https"
      - "--certificatesresolvers.le.acme.httpchallenge=true"
      - "--certificatesresolvers.le.acme.httpchallenge.entrypoint=web"
      - "--certificatesresolvers.le.acme.email=${LETSENCRYPT_EMAIL}"
      - "--certificatesresolvers.le.acme.storage=/letsencrypt/acme.json"
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
      - ./letsencrypt:/letsencrypt

  gitlab:
    image: gitlab/gitlab-ce:latest
    container_name: gitlab
    restart: always
    hostname: ${GITLAB_DOMAIN}
    shm_size: '256m'
    environment:
      GITLAB_OMNIBUS_CONFIG: |
        external_url 'https://${GITLAB_DOMAIN}'
        nginx['listen_port'] = 80
        nginx['listen_https'] = false
        nginx['proxy_set_headers'] = {
          "X-Forwarded-Proto" => "https",
          "X-Forwarded-Ssl" => "on"
        }
        gitlab_rails['gitlab_shell_ssh_port'] = 2222
    ports:
      - "2222:22"
    volumes:
      - ./config:/etc/gitlab
      - ./logs:/var/log/gitlab
      - ./data:/var/opt/gitlab
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.gitlab.rule=Host(`${GITLAB_DOMAIN}`)"
      - "traefik.http.routers.gitlab.entrypoints=websecure"
      - "traefik.http.routers.gitlab.tls=true"
      - "traefik.http.routers.gitlab.tls.certresolver=le"
      - "traefik.http.services.gitlab.loadbalancer.server.port=80"

5. 서비스 시작

docker compose up -d

6. 서비스가 정상적으로 실행됐는지 확인

docker compose ps

GitLab은 최초 시작 시 초기화에 몇 분 정도 걸릴 수 있습니다.

7. 초기 root 비밀번호 가져오기

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

참고: 이 파일은 24시간 후 자동으로 삭제되므로 비밀번호를 바로 기록해 두세요.

8. 로그인

  • URL: https://gitlab.example.com
  • 사용자명: root
  • 비밀번호: 위에서 가져온 값

첫 로그인 후 root 비밀번호를 즉시 변경하세요.

9. 다음 단계

GitLab CE가 이제 HTTPS를 통해 안전하게 서비스되고 있습니다. 여기서 할 수 있는 일은 다음과 같습니다.

  • 그룹과 프로젝트를 생성하고 팀원을 초대하기
  • GitLab Runner를 설정해 CI/CD 파이프라인 실행하기
  • 이메일 알림을 위한 SMTP 설정 및 SSO를 위한 SAML/OIDC 구성하기

추가 팁과 보다 자세한 단계별 안내는 원문 기사인 Vultr Docs를 참고하세요.

0 조회
Back to Blog

관련 글

더 보기 »