Education*
Devops
Architecture
F/B End
B.Chain
Basic
Others
CLOSE
Search For:
Search
BY TAGS
linux
HTTP
golang
flutter
java
fintech
개발환경
kubernetes
network
Docker
devops
database
tutorial
cli
분산시스템
www
블록체인
AWS
system admin
bigdata
보안
금융
msa
mysql
redis
Linux command
dns
javascript
CICD
VPC
FILESYSTEM
S3
NGINX
TCP/IP
ZOOKEEPER
NOSQL
IAC
CLOUD
TERRAFORM
logging
IT용어
Kafka
docker-compose
Dart
Docker로 GitLab 설치하기
Recommanded
Free
YOUTUBE Lecture:
<% selectedImage[1] %>
yundream
2024-09-07
2024-09-07
120
# GitLab GitLab은 Git 저장소를 제공하는 목적으로 시작됐지만, 지금은 개발과 협업, 배포를 위한 포괄적인 DevOps 플랫폼으로 발전했다. Git 소스코드 관리, CI/CD 구성, 이슈 추적, 코드 리뷰, 프로젝트 관리, 보안 및 권한 관리 등 소규모 팀은 물론이고 대규모 조직에서도 사용 할 수 있는 기능들을 가지고 있다. 특히 서버에 직접 설치해서 운영 할 수 있기 때문에, 보안/규제 등의 이유로 직접 Git 저장소를 구성해야 하는 기업에서 채택이 늘어나고 있다. ### GitLab 버전 GitLab은 커뮤니티 에디션과 엔터프라이즈 에디션이 있다. 커뮤니티 에디션은 오픈소스 버전으로 누구든지 무료로 사용 할 수 있다. 무료라고는 하지만 Git 저장소, CI/CD 파이프라인, 이슈 추적, 코드 리뷰와 같은 주요 기능들은 포함하고 있기 때문에 중소규모 기업에서도 충분히 사용 할 수 있다. 엔터프라이즈 에디션은은 SSO(Single Sign-On), LDAP, 분석/통계, 사용자 지정 대시보드 등 기업환경에서 필요한 통합 및 확장 기능을 지원한다. 여기에서는 **GitLab 엔터프라이즈 에디션을 설치** 한다. GitLab을 본격적으로 사용하기 원한다면 처음부터 엔터프라이즈 에디션을 사용하도록 하자. 커뮤니티 버전의 모든 기능을 다 사용 할 수 있으며, 재 설치등의 과정 없이 언제든지 유료로 업그레이드 할 수 있다. 굳이 커뮤니티 버전을 설치할 이유는 없다. # Install Docker compose를 이용해서 GitLab을 설치해 보려 한다. 설치 환경은 아래와 같다. ![GitLab 설치 환경](https://docs.google.com/drawings/d/14_6eIXUDcwk4Nw3Nwog9ZgOJxtxN3vOcbGzZVOD_Uqw/pub?w=480&h=360) 일반적으로 웹 애플리케이션을 설치하면, 앞에 로드밸런서를 배치 할 것이다. 이 로드밸런서에서 SSL Termination을 하고 로드밸런서에서 GitLab 구간은 HTTP로 서비스를 한다. 여기에서는 로드밸런서로 NginX를 사용했다. AWS의 경우 Application Load Balancer 를 사용하게 될 거다. 아래는 docker-compose.yml 파일이다. ```yaml version: '3.9' services: gitlab: image: 'gitlab/gitlab-ee:17.1.6-ee.0' container_name: gitlab restart: always hostname: 'gitlab.example.com' environment: GITLAB_OMNIBUS_CONFIG: | external_url 'https://gitlab.example.com' gitlab_rails['gitlab_shell_ssh_port'] = 8022 nginx['listen_https'] = false nginx['listen_port'] = 80 nginx['proxy_set_headers'] = { "X-Forwarded-Proto" => "https", "X-Forwarded-Ssl" => "on" } # Add any other gitlab.rb configuration here, each on its own line TZ: 'Asia/Seoul' ports: - '8888:80' - '8022:22' volumes: - './config:/etc/gitlab' - './logs:/var/log/gitlab' - './data:/var/opt/gitlab' ``` 컨테이너를 실행하면 gitlab 뿐만 아니라 postgresql, 내장된 nginx 까지 함께 설치된다. * image: 2024년 9월 gitlab 엔터프라이즈 최신 버전은 17.1.6이다. * nginx['listen\_https'] = false: https 연결을 비활성화 한다. * nginx['listen\_port'] = 80: nginx 포트는 80번이다. * "X-Forwarded-Proto" => "https": 해당 옵션을 설정을 설정하면 NginX는 백앤드에 X-Forwarded-Proto 헤더를 세팅해서 전달한다. 그러면 백앤드는 앞단에 있는 프락시서버에서 https를 처리했다는 것 알게 된다. 따라서 gitlab 서버는 클라이언트에 URL을 리다이렉트 할 때, "https"를 리다이렉트 할 수 있다. * 8888:80: 8888 포트를 80으로 포트워딩 한다. # Nginx # GitLab 실행 및 접속 GitLab을 실행한다. ``` docker compose up -d ``` 접속해보자. ![GitLab 로그인](https://docs.google.com/drawings/d/1v8LBJh6d_HmCr3CcsqHjL3QPI0RXbSybiDdWoa9PHW8/pub?w=960&h=720) Username은 root 이며, 초기 로그인 패스워드는 아래와 같이 확인 할 수 있다. ``` $ docker exec gitlab cat /etc/gitlab/initial_root_password | grep Password Password: uiz5ibYArTsxxxxxxxxxxxi2Z4JuOmXCOmBw= ``` 접속 성공 ![GitLab Login 성공](https://docs.google.com/drawings/d/1DNR9zcdVPNhBFIba_nW91kUAXoT6V8hirz-kNb6HJcI/pub?w=960&h=720)
Recent Posts
GPT를 이용한 Reranker 테스트
5분만에 만들어보는 Streamlit 챗봇
Let's encrypt로 SSL 인증서 관리하기
Upscayl을 이용한 이미지 업스케일링
스테이블 디퓨전 설치 및 사용해보기
Elasticsearch 설치
AI / LLM에 대한 친절한 소개
SLA 다운타임 계산기
Docker로 GitLab 설치하기
Ubuntu Linux에 NVIDIA 드라이버 설치
Archive Posts
Tags
devops
git
Copyrights © -
Joinc
, All Rights Reserved.
Inherited From -
Yundream
Rebranded By -
Joonphil
Recent Posts
Archive Posts
Tags