본문 바로가기

카테고리 없음

[정리] Gitlab, Docker 개념 활용 호스팅!

안녕하세요!

A 부터 Z 까지 공유하는 SA2Z(Share A to Z) 블로그 입니다.!

오늘은 개발자들이 프로젝트진행에 활용하는 다양한 툴들 중에 Gitlab에 대해 알아보려 합니다.!

최근 업무도 코딩과 연관성이 짙어지고, 개인적으로 공부도 하고 있다기때문에 관심도가 높아졌고,

개발하는데 최신의,효율적인 기술이나 개념들을 많이 도입될수록 불필요한 디버깅이나 단순반복업무가 줄어들 수 있을 것 같다는 생각이 많이 듭니다.

업무협업,소통은 confluence, slack 을 주로 사용하는 걸로 보이고,

일단 소스코드 관리는 주로 github, CI면에서는 jenkins도 많이 사용하는 것으로 보였습니다.

최근에는 도커개념도 많이 도입해서 시스템의 개선이나 재배포에 용이하게 사용하고 있는 걸로 보였습니다.

전체 프로젝트 매니징 하는데(CI/CD)에는 "Atlassian" 계열의 jira software, confluence,bitbucket 등등을 통합해서 많이 사용하고 계시는 것 같았는데 이는 유료여서 좀더 서칭을 하던중,

유사한 기능을 하는 Gitlab이라는 툴을 알게되어 손쉽게 사용할 수 있는 방법을 정리드립니다~!

#1. Gitlab 개요

#2. Docker & gitlab 호스팅


#1. Gitlab 개요

위키백과상에는

"깃랩 사가 개발한 위키와 이슈 추적 기능을 갖춘 웹 기반의 데브옵스 시스템으로써, 오픈 소스 라이선스 및 사유 소프트웨어 라이선스를 사용한다. 2019년 현재, 깃 저장소와 이슈 추적 기능을 가춘 유일한 단일 어플리케이션의 데브옵스 솔루션" 으로 되어있다.

요약하자면 웹기반에서 소스코드 버전관리부터 이슈매니징, 어플리케이션 실행까지 한꺼번에 해낼 수 있는 무료솔루션이다.

github은 사실 마이크로소프트가 모기업인 협업형 버전관리 툴이지만, gitlab은 아직 인수되지 않은 형태로 보인다..언젠가 인수되지 않을까..?ㅎㅎ

아무튼 온전한 프로젝트를 하는데 필요한 기능을 모두 담고 있는것 같아서 개발 효율성을 위해 사용범도 잘 익혀놔야 할 것 같네요~


#2. Docker & gitlab 호스팅

Docker 개념의 어마무시한 파급력을 알고, 사용도 꽤나 할줄 알다보니 새로운 코드던, 프로젝트던 일단 다 도커화를 하거나 도커이미지가 있는지 찾아보게 되는것 같습니다..ㅎㅎ 게을러서..

다행히도 gitlab 도커이미지가 존재해서, 개인 PC에 Docker 만 설치되어 있다면, 순식간에 gitlab을 호스팅 하실 수 있습니다.

# Run Gitlab Docker container옴
 
$ docker run --detach \    # 백그라운드에서 실행 후 해당 터미널에서 빠져나옴
    --hostname gitlab.test.com \  # 서비스 호스트명
    --publish 443:443 --publish 80:80 --publish 22:22 \  # 네트워크 통신 포트설정
    --name gitlab \   # 도커컨테이너 명
    --restart always \   # pc재시작 시 자동으로 실행
    -v /srv/gitlab/config:/etc/gitlab \  # gitlab 설정파일 경로
    -v /srv/gitlab/logs:/var/log/gitlab \ # gitlab 로그저장 경로
    -v /srv/gitlab/data:/var/opt/gitlab \ # gitlab 프로젝트저장 경로
    gitlab/gitlab-ce:latest  # 도커 이미지명:태그

주석을 단 것 처럼 옵션들을 붙여서 gitlab 도커 컨테이너를 실행하면 끗.

참 쉽죠?

해당 옵션들을 .yml파일에 작성해서

$ docker-compose up -d 로 실행하셔도 됩니다.

실행 후에는 도커를 얹은 pc에서는 웹브라우저를 통해 "localhost:[portNo]" 지정하신 port로 접속하시면 되고,

공유기, 내부 네트워크에서는 도커가 실행중인 pc의 ip를 활용해서 " [IP]:[PortNo]" 로 접속하시면 아래와 같은 화면으로 접속 가능합니다.

Register 탭으로 등록 후 활용하시면 됩니다.!

사용법에 대해서는 추후에 활용을 좀 해본 후에 공유드리겠습니다~

gitlab docker 실행

+ Docker 실행 시 오류

혹시 저대로 실행 했는데 계속 접속이 안되실 경우,

$ docker exec gitlab /bin/bash를 통해 도커내부에서 어디까지 실행이 돼었는지 확인해보실 필요가 있습니다.

저같은 경우 리눅스 서버가 이미 80번 포트를 잡고 있는데 gitlab 내부 nginx가고 ㅇ 80번 포트를 써야하다 보니 에러가 계속 반복 발생 되고 있었습니다.

# 내용은 대략 " error : 80 port in use" 요런 느낌의 80번 포트 사용중이다...는 느낌적인 느낌

이럴 경우, 새로 터미널을 여셔서 도커내부적인 설정을 변경해줘야 합니다.

# 실행중인 도커 시스템쉘으로 진입
$ docker exec gitlab /bin/bash 로 터미널 접속 후

# 기본설정 포트값 변경
$ nano  /etc/gitlab/gitlab.rb
위 명령어로 편집모드로 진입 후 nginx['listen_port'] = [원하는 포트 번호] 를 편집
- 참고. 관련해서 다음 파일들 내부 포트번호 수정은 소용이 없었습니다. 
  '/opt/gitlab/embedded/conf/nginx.conf'
  '/var/opt/gitlab/nginx/conf/gitlab-http.conf'


# 이후 해당셀에서 gitlab을 재시작
$ gitlab-ctl stop 
$ gitlab-ctl reconfigure 
$ gitlab-ctl start

 아무쪼록 에러없이 금방 실행 되시길 바라겠습니다~