도커 / 깃랩(GitLab) 설치 / 공식문서 기준 / 아과노트
안녕하세요
아과노트입니다.
오늘은 도커를 이용해서 깃랩 설치를 진행하도록 하겠습니다.
보통 소스관리를 위해 기존에 회사에서는 SVN을 사용했었는데
요즘에는 git이 대세가 되어서 깃허브(github)를 주로 사용하는것 같습니다.
하지만 회사의 내부 소스를 외부의 서버(깃허브, github)에 올리는 것은
아무래도 꺼림찍 해서 사용을 주저하게 되는데요
그래서 설치형 git인 깃랩(GitLab을) 구축해 보도록 하겠습니다.
오늘 포스팅 전에 먼저 도커(docker)를 설정해 주세요.
설정이 안되어 있을 경우 아래의 포스팅을 참고해 주시면 됩니다.
그러면 진행해 보겠습니다.
오늘도 공식문서 기준으로 아래의 글을 참고했습니다.
https://docs.gitlab.com/ee/install/docker.html
오늘의 순서는 다음과 같이 진행됩니다.
- 데이터 폴더 생성(퍼시스턴드 데이터(persistent data))
- 도커 컴포즈(docker-compose) 작성
- 도커 컴포즈 실행
- 깃랩 접속
- 깃랩 루트(root) 계정 확인 & 로그인
1. 데이터 폴더 생성(퍼시스턴드 데이터(persistent data))
도커의 GitLab 이미지가 제거되었을 경우를 대비해서설정파일이나 데이터 파일은 삭제되지 않도록 폴더를 생성합니다.공식 문서에서는 다음과 같이 3가지 데이터 폴더가 필요하다고 합니다.
위치 | 컨테이너 위치 | 용법 |
$GITLAB_HOME/data | /var/opt/gitlab | GitLab의 응용 프로그램 데이터를 저장합니다. |
$GITLAB_HOME/logs | /var/log/gitlab | GitLab의 로그를 저장합니다. |
$GITLAB_HOME/config | /etc/gitlab | GitLab 환경설정 파일을 저장합니다. |
위의 폴더를 만들기 위해 다음과 같이 명령어를 입력해 주세요
# 홈 폴더에 들어가서 퍼시스턴트 데이터를 만들겠습니다.
cd ~
# gitlab이라는 폴더를 만들고 들어갑니다.
mkdir gitlab
cd gitlab
# 아래 3개의 폴더를 생성합니다.
mkdir data
mkdir logs
mkdir config
이제 깃랩 설치 및 실행을 위한 도커컴포즈 파일(docker-compose)을 만들어 보겠습니다.
2. 도커 컴포즈(docker-compose) 작성
gitlab폴더에서 다음과 같이 입력해서 docker-compose을 만들어 주세요
cd ~/gitlab
vi docker-compose.yml
그리고 다음과 같이 입력해 주세요
version: '3.6'
services:
web:
image: 'gitlab/gitlab-ee:latest'
restart: always
#hostname: 'gitlab.example.com' #이 부분은 사용하는 dns가 있을때 활성화합니다.
environment:
GITLAB_OMNIBUS_CONFIG: |
#external_url 'https://gitlab.example.com'
# Add any other gitlab.rb configuration here, each on its own line
gitlab_rails['gitlab_shell_ssh_port'] = 2224
ports:
- '80:80'
- '443:443'
- '2224:22' #22번은 ssh로 사용하고 있기에 다른포트로 변경해 줍니다.
volumes:
- '$GITLAB_HOME/config:/etc/gitlab'
- '$GITLAB_HOME/logs:/var/log/gitlab'
- '$GITLAB_HOME/data:/var/opt/gitlab'
shm_size: '256m'
여기서 git의 ssh 포트를 2224로 설정한 부분(gitlab_rails['gitlab_shell_ssh_port'] = 2224)은
22번은 ssh가 이미 사용하고 있기 때문에 2224로 변경했습니다.
이것을 안하고 하면 이미 22번 포트를 사용하고 있다고 에러가 뜹니다.
Error response from daemon: driver failed programming external connectivindpoint gitlab (d0fe4b7f4a898bf3e005d3951b651e1f269189b09d8093ba70a9586cf): Error starting userland proxy: listen tcp4 0.0.0.0:22: bind: address ain use
ssh 포트를 2224로 다시 잘 수정하면 다음과 같이 설치와 실행이 됩니다.
3. 도커 컴포즈 실행
실행은 docker-compose.yml과 같은 폴더에서
docker compose up -d로 실행해 주세요
종료는 docker compose down 입니다.
docker compose의 기본 실행/종료 방법
실행: docker compose up -d종료: docker compose down
-아과노트-
실행해 보면 다음과 같이 됩니다.
그럼 이제 브라우저를 열어서 테스트를 해봅시다.
4. 깃랩 접속
http://ip주소 를 입력하면 됩니다.
ip주소는 ip addr 명령어로 확인이 가능합니다.
저는 다음과 같이 192.168.10.134 이었습니다.
그럼 크롬이나 엣지에서 http://192.168.10.134 로 입력하면 됩니다.
아래와 같이 접속이 되실꺼에요.
바로 안되시면 한 2~3분 정도 부팅되는 시간까지 고려해서 기다렸다가 확인해보세
5. 깃랩 루트(root) 계정 확인 & 로그인
초기계정은 root입니다.
문제는 패스워드 인데 패스워드는 다음의 명령어를 ssh에 입력해서 확인합니다.
sudo docker exec -it gitlab grep 'Password:' /etc/gitlab/initial_root_password
저는 다음과 같이 결과가 나왔습니다.
이제 비밀번호에 빨간색 박스 부분으로 넣고 로그인 하면 다음과 같이 됩니다.
이렇게 깃랩(GitLab)을 도커(Docker)를 이용해서 설치하는 방법을 알아봤습니다.
다음 이시간에는 깃랩의 보안을 강화하는 부분을 알아보겠습니다.
오늘도 고생하셨습니다.