11/29/2019

Docker GitLab-CE 설치 및 기본이용확인

1. Docker로 이용 Gitlab-CE Server 설치 및 실행 

  • Docker Gitlab-CE 설치 및 기본운영 
Gitlab에서 쉽게 설명이 잘되어있어 따라하기도 쉽고 따라하기 좋다
  https://docs.gitlab.com/omnibus/docker/
  https://hub.docker.com/r/gitlab/gitlab-ce/tags/

  • Gitlab 직접 설치 Ubuntu
  https://about.gitlab.com/install/#ubuntu


문서를 읽다가 보면 현재 Docker Image에는 E-Mail을 위한 SMTP Server가 설치가 되어있지 않다고한다.
나중에 필요하다면 SMTP Server 설치를 진행해서도 테스트를 해보자


  • 기존에 SSH Server가 설치되어 정지

$ sudo service ssh status  //SSH Server 상태확인 
or 
$ sudo systemctl status ssh

$ sudo service ssh stop // SSH Server 정지  
or
$ sudo systemctl stop ssh

$ sudo systemctl enable/disable ssh //SSH Service enable/disable  

$ systemctl list-units --type service
$ systemctl list-units --type service --all


1.1 Image Download and Run Gitlab-CE Container 

기존으로 Background(detach)로 돌리것이므로, Docker의 설정인 Terminal mode 설정을 비롯하여 다른 설정이 필요없다.
본인이 Terminal에 들어가서 확인하고 싶다면 docker exec 로 이용하여 확인한다

$ docker pull gitlab/gitlab-ce

$ docker run --detach \
  --hostname gitlab.example.com \
  -p 443:443 -p 80:80 -p 22:22 \
  --name gitlab \
  --restart always \
  -v /srv/gitlab/config:/etc/gitlab \
  -v /srv/gitlab/logs:/var/log/gitlab \
  -v /srv/gitlab/data:/var/opt/gitlab \
  gitlab/gitlab-ce:latest

$ docker ps -a  // Container 동작확인 
CONTAINER ID        IMAGE                     COMMAND             CREATED             STATUS                 PORTS                                                          NAMES
e96d2500ff76        gitlab/gitlab-ce:latest   "/assets/wrapper"   2 hours ago         Up 2 hours (healthy)   0.0.0.0:22->22/tcp, 0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp   gitlab


  • PortMapping 
  1. SSH : 22
  2. HTTP: 80
  3. HTTPS:443
이미 상위 Server를 사용한다면, 다른 Port로 Mapping하여 사용하자

  • Host 와 Container Data 공유
  1. /srv/gitlab/data      For storing the GitLab configuration files
  2. /srv/gitlab/logs       For storing logs
  3. /srv/gitlab/config  For storing the GitLab configuration files
상위설정대로 하면 Host의 /srv/gitlab 에 모든 정보가 저장되어진다.


  • hostname 
hostname은 나의 경우 없기때문에 그냥 기존대로 실행했으며, 추후 DDNS를 이용하여 hostname을 생성 한 후 나중에 다시 테스트 진행


1.2 Git Lab의 Config 설정 

Gitlab 의 설정은 /etc/gitlab/gitlab.rb 에서 하면되며, 자세한 내용은 아래의 세부 설정부분에서 참조 

  • GitLab Config 설정 및 확인 
$ docker exec -it gitlab /bin/bash
root@gitlab:/#   vi /etc/gitlab/gitlab.rb 

or 

$ docker exec -it gitlab editor /etc/gitlab/gitlab.rb  

Config의 SMTP 관련설정
  https://docs.gitlab.com/omnibus/settings/smtp.html

Config  HTTPS 관련설정
  https://docs.gitlab.com/omnibus/settings/nginx.html#enable-https

  • Gitlab Docker 재실행 
$ docker restart gitlab  //설정 변경후 Container 재시작  


1.3  Gitlab 관리 부분 


  • Data Backup 확인을 위해  Container 삭제 후 다시 재시작 

여러명의 ID를 만들고 데이타를 저장을 한 후 Gitlab Container를 삭제 후 다시 시작을 해보면 제대로 /srv/gitlab 에 Backup 되었는지 확인가능하다

$ docker ps -a  // Container 동작확인 
CONTAINER ID        IMAGE                     COMMAND             CREATED             STATUS                 PORTS                                                          NAMES
e96d2500ff76       gitlab/gitlab-ce:latest   "/assets/wrapper"   2 hours ago         Up 2 hours (healthy)   0.0.0.0:22->22/tcp, 0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp   gitlab

$ docker stop e96d2500ff76   // Container 정지 

$ docker rm e96d2500ff76    // Container 삭제   

상위  docker run 명령어를 사용하여 다시 테스트 진행 (문제 없음확인)

  • GitLab의 Log 확인 
$ docker logs gitlab | tail 



2. Gitlab-CE 기본설정 및 확인 

아래의 링크로 접속 (본인 IP접속가능 or Hostname)
  http://localhost


Root Password를 설정



New User를 등록하고 관리시작
( Root 권한이라서 그런가 Sign in 이외 Resister 가 존재)



그룹 과 개인으로 구분해서 사용하자


그룹으로 생성





개인 Project 생성 및 기본 테스트







아직 Composer를 이용하여 별도설정 해보지 못했으며, 현재 테스트 용도로만 사용하고 있다.
그리고, Docker를 동시에 여러개 사용하지도 않는다.


Gitlab-CE 와 EE의 차이
  http://developer.gaeasoft.co.kr/development-guide/gitlab/gitlab-introduce/


  • Raspberry PI에서 직접 GitLab Server 이용 
  https://hackernoon.com/create-your-own-git-server-using-raspberry-pi-and-gitlab-f64475901a66
  https://projects.raspberrypi.org/en/projects/getting-started-with-git