내부망(온프레미스)에서 Git을 운영하려면 Git 서버를 직접 구축해야 하며, 다음과 같은 Git 관리 도구를 사용할 수 있음
1. GitLab
- 기업에서 가장 많이 사용하는 자체 호스팅 가능한 Git 플랫폼
A. 주요 기능
- Git 저장소 관리 및 CI/CD(지속적 통합 및 배포) 지원
- 권한 관리 및 그룹 관리 가능
- 웹 기반의 UI 제공 (GitHub과 유사)
- Jira 및 Jenkins 등 다양한 외부 툴과 연동 가능
- Open Source(커뮤니티 에디션, CE)와 상용 버전(Enterprise Edition, EE) 제공
B. 장점
- 강력한 CI/CD 파이프라인 지원
- 대규모 조직에 적합한 권한 관리 및 통합 보안 기능 제공
- 웹 기반 GUI가 직관적이며 GitHub과 유사
C. 단점
- 시스템 요구사항이 높음 (메모리 4GB 이상 권장)
- 초기 설정 및 유지보수가 비교적 복잡
D. 추천 대상: 대규모 기업, DevOps 및 CI/CD 활용을 원하는 팀
2. GitLab 설치 및 설정
1) GitLab 컨테이너 실행
docker run --detach \
--hostname gitlab.local \
--publish 8929:8929 --publish 443:443 --publish 22:22 \
--name gitlab \
--restart always \
--volume gitlab_config:/etc/gitlab \
--volume gitlab_logs:/var/log/gitlab \
--volume gitlab_data:/var/opt/gitlab \
gitlab/gitlab-ce:latest
- --publish 8929:8929 → 웹 인터페이스를 http://localhost:8929에서 접속 가능
- --publish 22:22 → SSH를 사용하여 Git 리포지토리에 접근 가능
- --volume gitlab_config:/etc/gitlab → 설정 파일 저장
- --volume gitlab_logs:/var/log/gitlab → 로그 저장
- --volume gitlab_data:/var/opt/gitlab → Git 저장소 데이터 저장
2) GitLab URL 설정
docker exec -it gitlab vi /etc/gitlab/gitlab.rb
# 설정 내용
external_url 'http://localhost:8929'
# 파일 저장 후 설정 반영
docker exec -it gitlab gitlab-ctl reconfigure docker restart gitlab
# 확인
docker exec -it gitlab grep "external_url" /etc/gitlab/
3) 웹 인터페이스 접속
4) 관리자 계정 설정
- GitLab 컨테이너 내부에서 자동 생성된 비밀번호 확인
- root 초기 비밀번호이며, 이 비밀번호는 최초 24시간 동안만 유효하므로 로그인 후 변경 필요
# 비밀번호 확인
docker exec -it gitlab cat /etc/gitlab/initial_root_password
- User Settings(사용자 설정) > Password(비밀번호)