리눅스

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

변군이글루 2021. 6. 8. 20:15
반응형

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
반응형