본문 바로가기

리눅스

GitLab Omnibus를 Docker 컨테이너로 올리는 방법

반응형

GitLab Omnibus를 Docker 컨테이너로 올리는 방법

1. Docker Compose 설치

Docker Compose가 시스템에 설치되어 있어야 합니다.

Docker Compose 설치 가이드는 공식 웹사이트(https://docs.docker.com/compose/install/)에서 제공됩니다.

2. docker-compose.yml 파일 생성

프로젝트 디렉터리에 docker-compose.yml 파일을 생성하고 다음과 같이 내용을 작성합니다.

  • docker-compose 파일 다운로드
git clone https://github.com/anti1346/docker-gitlab-ce.git
cd docker-gitlab-ce
  • .env 파일 생성
vim .env
GITLAB_HOST=domain_name
GITLAB_EMAIL=email_address
  • docker-compose 실행
docker-compose up -d
docker-compose ps
$ docker-compose ps
 Name        Command          State                                       Ports                                
---------------------------------------------------------------------------------------------------------------
gitlab   /assets/wrapper   Up (healthy)   22/tcp, 0.0.0.0:2222->2222/tcp, 0.0.0.0:443->443/tcp,                
                                          0.0.0.0:5000->5000/tcp, 0.0.0.0:5001->5001/tcp, 0.0.0.0:80->80/tcp
728x90

docker-compose.yml (참고 : https://github.com/anti1346/docker-gitlab-ce)

vim docker-compose.yml
version: '3.9'
services:
  gitlab:
    env_file: .env
    image: gitlab/gitlab-ce:latest
    container_name: gitlab
    hostname: ${GITLAB_HOST}
    restart: always
    environment:
      GITLAB_OMNIBUS_CONFIG: |
        external_url 'https://${GITLAB_HOST}'
        gitlab_rails['gitlab_shell_ssh_port'] = 2222
        gitlab_rails['time_zone'] = 'Asia/Seoul'
        nginx['redirect_http_to_https'] = true
        nginx['redirect_http_to_https_port'] = 80
        #nginx['ssl_certificate'] = "/etc/gitlab/ssl/${GITLAB_HOST}.crt"
        #nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/${GITLAB_HOST}.key"
        registry['enable'] = true
        registry_nginx['redirect_http_to_https'] = true
        registry_external_url 'https://${GITLAB_HOST}:5000'
        letsencrypt['enable'] = true
        letsencrypt['contact_emails'] = ['${GITLAB_EMAIL}']
        letsencrypt['auto_renew'] = true
        letsencrypt['auto_renew_hour'] = "12"
        letsencrypt['auto_renew_minute'] = "30"
        letsencrypt['auto_renew_day_of_month'] = "*/15"
        #backup
        gitlab_rails['backup_path'] = '/var/opt/gitlab/backups'
        gitlab_rails['backup_keep_time'] = 604800
        gitlab_rails['backup_archive_permissions'] = 0644
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - ./gitlab/config:/etc/gitlab:rw
      - ./gitlab/data:/var/opt/gitlab:rw
      - ./gitlab/logs:/var/log/gitlab:rw
      - ./gitlab/backups:/var/opt/gitlab/backups
    ports:
      - 80:80
      - 443:443
      - 2222:2222
      - 5000:5000
  • image: GitLab 컨테이너의 Docker 이미지를 선택합니다. 여기서는 최신 버전을 사용하도록 설정했습니다.
  • container_name: 컨테이너의 이름을 지정합니다.
  • restart: 컨테이너가 실패하거나 다시 시작해야 할 때 자동으로 다시 시작하도록 설정합니다.
  • ports: 포트 매핑을 통해 GitLab 웹 인터페이스 및 SSH 액세스를 노출시킵니다.
  • volumes: 컨테이너 내부의 GitLab 데이터와 설정을 호스트 시스템의 디렉터리에 마운트합니다.

접속 및 초기 설정(GitLab 웹 페이지)

GitLab 컨테이너가 실행된 후, 웹 브라우저에서 http://localhost 또는 지정한 호스트 이름으로 접속하여 초기 설정을 진행합니다. 초기 루트 비밀번호를 확인하려면 컨테이너 로그를 확인하십시오.

g1

 

이제 GitLab Omnibus를 Docker Compose를 사용하여 컨테이너로 올렸으며, 웹 인터페이스를 통해 Git 저장소 및 프로젝트를 관리할 수 있습니다. 필요한 경우 Docker Compose를 사용하여 컨테이너를 업그레이드하거나 관리할 수도 있습니다.

 

728x90
반응형