Git repository를 관리해주는 대표적인 서비스로 Github가 있다. 다만 Github는 무료 서비스이기는 하지만 모든 소스를 공개해야 하고, 비공개 또는 복수의 프로젝트를 관리하려면 유료 버전으로 변경하여야 한다. 또한 조직 관점에서의 관리 기능이 많이(?) 제공되지는 않는 것 같다.
이에 반해 GitLab은 개인 또는 조직이 Git repository를 관리하게 할 수 있도록 하는 소프트웨어의 모음으로, Github 공개 버전 정도로 생각하면 된다.
GitLab도 무료버전부터 유료버전까지 존재하며 그 차이점은 아래 그림과 같다고 한다.
조직에서 GitLab을 사용하게 될 경우 상용 버전을 사용하거나, 무료 버전 기반으로 IT 엔지니어들이 운영/유지보수를 담당할 수 있을 것이다. 본 포스팅에서는 간단히 무료 버전의 GitLab 을 기동시키는 가장 손쉬운 방법에 대해 소개한다.
Container 를 사용하여 GitLab 기동하기
다음 yaml 파일의 설정 내용을 확인하고, 본인의 상황에 따라 일부 환경변수를 변경하여 컨테이너를 기동하게 되면 초기 기동에 약간의 시간이 소요된 후 매우 손쉽에 기동되는 GitLab을 사용할 수 있게 된다.
Image 버전은 latest를 사용하거나 특정 버전을 지정해서 사용할 수 있으니 상황에 따라 적절히 변경하여 준다.
version: "3"
services:
gitlab:
image: gitlab/gitlab-ce:14.6.0-ce.0
container_name: gitlab
ports:
- 80:80
- 1022:22
- 443:443
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url 'https://127.0.0.1'
letsencrypt['enable'] = true
letsencrypt['contact_emails'] = ['my-account@gmail.com']
letsencrypt['auto_renew'] = true
letsencrypt['auto_renew_hour'] = 12
letsencrypt['auto_renew_minute'] 30
letsencrypt['auto_renew_day_of_month'] = "*/7"
GITLAB_TIMEZONE: Asia/Seoul
volumes:
- ./config:/etc/gitlab
- ./data:/var/opt/gitlab
environment:
- TZ=Asia/Seoul
설치가 완료된 후 브라우저를 통해 root 계정으로 접속하여 준다.
위 설정 내용 중 external_url 에서 HTTP 포트를 지정하지 않았기 때문에 기본 포트인 80 포트로 매핑되어 서비스가 시작되고, 이를 container port 매핑을 통해 외부로 노출시켜 주었다.
만일 gitlab http 서비스 포트 자체를 변경하려면 다음과 같이 설정해 준 후, container 포트를 외부로 노출시켜 주도록 하자.
externel_url 'http://my-service.com:8080'
ports:
- 8080:8080
root 계정의 패스워드는 마운트 된 config 폴더에서 확인할 수 있다.
설치 완료 이후의 config 폴더는 다음과 같은 파일들이 존재하며, 이 중 initial_root_password 파일을 확인한다.
최초 설치한 후 루트 계정의 비밀번호를 잃어버렸거나, 초기 패스워드가 정상동작하지 않는다면 다음 포스팅을 참조하여 변경해 준다.
GitLab 사용시 Notification 이메일 전송(Push 알람, MR 요청 등) 기능을 활성화하려면 다음을 참조하여 gitlab 설정을 추가해 준다.
https://docs.gitlab.com/omnibus/settings/smtp.html
# gitlab_rails['gitlab_shell_ssh_port'] = 22
# gitlab_rails['backup_keep_time'] = 100000
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address] = ""
gitlab_rails['smtp_port'] = 587
gitlab_rails['smtp_user_name'] = ""
gitlab_rails['smtp_password'] = ""
gitlab_rails['smtp_domain'] = "smtp.gmail.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = false
gitlab_rails['smtp_openssl_verify_mode'] = 'peer'
방문해 주셔서 감사합니다! 정보가 도움이 되셨다면 로그인하지 않아도 누룰 수 있는 아래의 ♡(좋아요)를 꾹~ 눌러주세요 ♥♥♥ |
'IT > 형상관리' 카테고리의 다른 글
Jenkins 로 빌드 및 배포 자동화 구성하기 (0) | 2022.05.29 |
---|---|
Git 저장소의 커밋 기록에서 대용량 파일을 삭제하기 (0) | 2022.05.10 |
Gitlab root 패스워드 변경 방법 (0) | 2021.06.17 |
SVN CLI 사용 방법 (0) | 2021.03.30 |
레포지터리 이관하기 - Git 저장소(레포지터리) 원격지 변경 (0) | 2021.03.26 |