GitLab 설치

Step1. Ubuntu 서버에 GitLab 설정하기

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 필수라이브러리 설치
$ sudo apt-get update
$ sudo apt-get install -y curl openssh-server ca-certificates
$ sudo apt-get install curl openssh-server ca-certificates postfix

# Gitlab 패키지 레퍼지토리를 추가한 후 설치
$ curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash

# 환경 변수 설정과 함께 gitlab-ce 를 설치
$ sudo EXTERNAL_URL="http://127.0.0.1:8085/" apt-get install gitlab-ce

# ip/port 설정 변경
$ sudo vi /etc/gitlab/gitlab.rb

# 명령어로 gitlab 서비스를 재시작해 변경된 환경설정을 적용
$ sudo gitlab-ctl reconfigure

ip/port 설정 변경

img2

완료

img1

주요 명령어

1
2
3
4
5
6
7
8
9
10
11
# 상태확인
$ sudo gitlab-ctl status

# 멈춤
$ sudo gitlab-ctl stop

# 시작
$ sudo gitlab-ctl start

# 재시작
$ sudo gitlab-ctl restart

Step2. Docker-compose를 통한 깃랩 띄우기

docker-compose.yml 파일 작성

docker-compose.yml 파일은 docker-compose 설정을 통해 컨테이너를 통합적으로 관리해주는 파일입니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#docker-compose.yml
version: '3.5'
services:
web:
image: 'gitlab/gitlab-ce:latest'
restart: always
hostname: 'localhost'
container_name: gitlab
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url 'http://127.0.0.1'
gitlab_rails['gitlab_shell_ssh_port'] = 5000
ports:
- '8080:80'
- '5000:22'
volumes:
- './gitlab/config:/etc/gitlab'
- './gitlab/logs:/var/log/gitlab'
- './gitlab/data:/var/opt/gitlab'
- './gitlab/backup:/var/opt/gitlab/backups' # 백업 폴더 추가
networks:
- gitlab

gitlab-runner:
image: 'gitlab/gitlab-runner:latest'
container_name: gitlab-runner
restart: always
depends_on:
- web
volumes:
- '/srv/gitlab-runner/config:/etc/gitlab-runner'
- '/var/run/docker.sock:/var/run/docker.sock'
networks:
- gitlab

networks:
gitlab:
name: gitlab-network

해당파일 작성 후 파일이 있는 곳에서

1
2
3
4
5
# 도커 빌드 및 백그라운드에서 해당 기술된 컨테이너 기동하는 명령어
$ docker-compose up -d

# 로그 실시간 확인
$ docker-compose logs -f

완료

img2


Git, 무엇인가?

Git은 컴퓨터 파일의 변경사항을 추적하고 여러명의 사용자들 간의 해당 파일들의 작업을 조율하기 위한 분산 버전관리 시스템입니다.
기하학적 불변 이론을 바탕으로 설계 됐고, 분산버전 관리 시스템으로서 빠른 수행속도에 중점을 두고 있는 것이 특징입니다.

저장소에서 프로젝트를 꺼내오면 내 컴퓨터에 저장소가 만들어지고 모든 변경이력이 저장됩니다. 여러 곳의 원격 저장소를 등록하여 사용할 수 있습니다.
커밋(Commit)은 우선적으로 로컬 저장소에 기록되며, 원격 저장소에 저장하려면 푸쉬(Push)작업을 수행하면 됩니다.
원격저장소의 변경사항을 내 로컬 저장소에 반영하려면 풀(Pull) 작업을 수행합니다.

주요 명령어

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# 환경설정 지정
$ git config --global user.name "<이름>"
$ git config --global user.email "<이메일>"

# 깃생성
$ git init <폴더이름>

# 깃상태
$ git status

# 깃 변경상태 저장 (수정한 파일을 스테이징함)
$ git add <파일이름 or .>

# 깃 상태 커밋 (스테이지에 올라온 파일 커밋)
$ git commit -m "<메시지>"

# 스테이징 한 파일 되돌리기
$ git reset HEAD <파일이름>

# 깃 브랜치 이동
$ git checkout <브랜치이름>

# 원격 저장소 복제
$ git clone <원격 저장소 주소> <내가 사용할 디렉터리 이름>

# 원격 저장소에서 변경된 사항을 로컬 저장소로 가져와 병합됨
$ git pull

# 원격 저장소에서 변경된 사항을 로컬 저장소로 불러오기만 함
$ git fetch