gitlab 설치

2021. 12. 26. 13:58Docker

https://hub.docker.com/search?q=gitlab&type=image 

 

Docker Hub

 

hub.docker.com

docker pull gitlab/gitlab-ce

https://docs.gitlab.com/ee/install/docker.html

 

GitLab Docker images | GitLab

Documentation for GitLab Community Edition, GitLab Enterprise Edition, Omnibus GitLab, and GitLab Runner.

docs.gitlab.com

https://docs.gitlab.com/ee/install/docker.html#install-gitlab-using-docker-compose

 

GitLab Docker images | GitLab

Documentation for GitLab Community Edition, GitLab Enterprise Edition, Omnibus GitLab, and GitLab Runner.

docs.gitlab.com

cmd에 환경변수 셋팅

# 윈도우
set GITLAB_HOME=원하는 디렉토리
set : 등록 확인

# 리눅스
export GITLAB_HOME=원하는 디렉토리
export

docker-compose.yml 파일 생성 및 작성

# 22번 포트 충돌시, 다른 포트로 변경 : OS에서 사용하는 포트와 충돌하기 때문

외부포트만 충돌하기 때문에 변경하고, 내부포트는 22로 셋팅해야 함

    ports:
      - '80:80'
      - '443:443'
      - '2222:22' # ssh 포트 host의 22번과 충돌을 피하기 위함
      - '5050:5050'

docker-compose up -d

# gitlab.rb permission 문제 발생시 : volume에 'Z' 옵션 추가

# root 비밀번호 변경

docker exec -it 컨테이너 이름 bash

gitlab-rails console -e production

user = User.where(id: 1).first

user.password='비밀번호'

user.password_confirmation='비밀번호'

user.save

# 브라우져에서 gitlab 사이트 접속

ID : root

Password : 비밀번호

(eval):1: unknown regexp options - gtlab external_url http://gitlab.example.com

도메인 부분을 ""으로 감싸주면 됨

(eval):1: unknown regexp options - gtlab external_url "http://gitlab.example.com"

runner 접속정보(Register the runner with this URL) 변경

브라우져에서 접속한 정보에 따라 보여짐

'http://192.168.0.2'로 접속하면 'http://192.168.0.2/'로 보이고,

'http://gitlab'으로 접속하면 'http://gitlab/'으로 보임

client 접속정보 변경

docker-compose.yml 수정 : ./confg/gitlab.rb 보다 더 우순선위 높음

    environment:
      GITLAB_OMNIBUS_CONFIG: |
        external_url 'http://gitlab'

docker-compose up -d를 수행하면 ./data/gitlab-rails/etc/gitlab.yml 파일이 변경됨

  gitlab:
    ## Web server settings (note: host is the FQDN, do not include http://)
    host: gitlab
    port: 80
    https: false

ERROR: Registering runner... failed runner=iuqrbryF status=couldn't execute POST against http://192.168.0.2/api/v4/runners: Post "http://192.168.0.2/api/v4/runners": dial tcp 192.168.0.2:80: connect: no route to host PANIC: Failed to register the runner. You may be having network problems.

gitlab-runner에서는 192.168.0.2 IP를 인식하지 못함 : docker-compose/bridge network인 경우 

접속정보를 'http://gitlab'으로 해야 같은 네트워크 안의 gitlab을 인식을 할 수 있음

gitlab-runner 상태 확인

gitlab-runner verify

docker logs -f 컨테이너명

FATAL: Service run failed                           error=stat /etc/gitlab-runner/config.toml: permission denied

selinux 때문에 발생 : ':Z' 추가

    volumes:
      - $GITLAB_HOME/runner/config:/etc/gitlab-runner:Z
      - /var/run/docker/sock:/var/run/docker.sock

granfana 셋팅

https://docs.gitlab.com/omnibus/settings/grafana.html

 

Grafana Dashboard Service | GitLab

Documentation for GitLab Community Edition, GitLab Enterprise Edition, Omnibus GitLab, and GitLab Runner.

docs.gitlab.com

접속 : ${gitlab 도메인}/-/grafana/login

docker-compose.yml에 적용한 "grafana['admin_password'] = 'foobar'"은 작동 안함

    environment:
      GITLAB_OMNIBUS_CONFIG: |
        external_url 'http://gitlab.example.com'
        registry_external_url 'http://gitlab.example.com:5050'
        grafana['disable_login_form'] = false
        grafana['admin_password'] = 'foobar'
        # Add any other gitlab.rb configuration here, each on its own line

아래 명령으로 비밀번호 설정 : 로그인 잘됨

docker exec -it 컨테이너명 gitlab-ctl set-grafana-password

gitlab registry 사용

docker-compose.yml 파일에 registry_external_url을 추가하면 됨

./config/gitlab.rb에 추가하고, 'gitlab-ctl reconfigure'를 수행해줘도 됨

    environment:
      GITLAB_OMNIBUS_CONFIG: |
        external_url 'http://gitlab.example.com'
        registry_external_url 'http://gitlab.example.com:5050'

gitlab 접속용 ssh 키 만들기

https://docs.gitlab.com/ee/ssh/

 

Use SSH keys to communicate with GitLab | GitLab

Documentation for GitLab Community Edition, GitLab Enterprise Edition, Omnibus GitLab, and GitLab Runner.

docs.gitlab.com

https://www.lainyzine.com/ko/article/creating-ssh-key-for-github/

 

GitHub 접속 용 SSH 키 만드는 방법

GitHub의 저장소를 사용할 때 HTTPS과 SSH 프로토콜을 사용할 수 있습니다. SSH 프로토콜은 공개키 방식으로 안전하게 정보를 교환할 수 있습니다. 이번 글에서는 공개키를 만드는 방법부터, GitHub에

www.lainyzine.com

https://insight.infograb.net/docs/user/ssh_keys/

 

GitLab에 SSH Key 등록 | DevSecOps 구축 컨설팅, 교육, 기술지원 서비스 제공

GitLab은 SSH 키를 사용하여 Git과 서버 간의 보안 통신을 지원합니다. SSH 프로토콜은 이 보안을 제공하며 매번 username이나 비밀번호를 제공하지 않고도 GitLab 원격 서버에 인증할 수 있습니다. GitLab

insight.infograb.net

클라이언트에서 키 생성

클라이언트 공개키를 gitlab에 등록

오른쪽 상단 사용자정보 > Edit profile
오른쪽 메뉴 > SSH Keys > 공개키 붙여 넣기 > Add Key

 

'Docker' 카테고리의 다른 글

Docker 에러  (0) 2022.01.02
Docker 명령어  (0) 2022.01.02
Linux Docker 설치  (0) 2021.12.31
InfluxDB 명령어  (0) 2021.12.26
Windows Docker 설치  (0) 2021.12.26