본문 바로가기

CICD(BUILD tool)

docker gitlab 설치 & gitlab-runner 연동

728x90
반응형

Gitlab Runner 는 Gitlab CI/CD와 pipeline에서 Job을 실행시키는 어플리케이션으로 

별도로 설치해서 사용할 수 있다.

 

Gitlab docker 설치 (Windows Docker)

docker run --detach --name gitlab 
	--hostname gitlab.pli.com 
    --publish 443:443 --publish 80:80 --publish 4422:22 
    --volume C:\gitlab:/etc/gitlab 
    --volume gitlab-logs:/var/log/gitlab 
    --volume gitlab-data:/var/opt/gitlab 
    gitlab/gitlab-ce

1. volume설정해서 gitlab을 먼저 설치한다. 

 

2. Gitlab root 계정 비밀번호 변경

$docker exec -it gitlab bash

# gitlab-rails console -e production
# user = User.where(id: 1).first
# user.password='[변경할 비밀번호]'
# user.password_confirmation='[변경할 비밀번호]'
# user.save
=> true

 

Gitlab-Runner 설치 

1. gitlab-runner 다운로드

https://docs.gitlab.com/runner/install/bleeding-edge.html#download-any-other-tagged-release

 

GitLab Runner bleeding edge releases | GitLab

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

docs.gitlab.com

 

 

2. C:\gitlab-runner(폴더 생성)

download받은 파일을 폴더로 옮겨준다.

 

// docker 말고 shell로 하면 gitlab-runner shell에서 빌드할 수 있다.
// shell로 선택하자ㅠㅠ

 

$gitlab-runner-windows-amd64.exe register
http://gitlab.pli.com:8080/
// Token 등록

$Please enter the default Docker image (e.g. ruby:2.6): 
alpine

>> Token 은 gitlab에서 연동할 Project > Settings > CI/CD > Runner > Token 

$./gitlab-runner.exe install 
$./gitlab-runner.exe start

 

 

제대로 등록이 되었으면 gitlab 해당 프로젝트에서 runner를 확인할 수 있다.

 

 

3. 프로젝트에서 new file을 만들어서 runner를 테스트해보자.

.gitlab-ci.yml을 선택하면 다양한 template을 확인할 수 있다.

 

 

stages:
  - test
  - build
  - deploy

test:
  stage: test
  script: echo "Running tests"

build:
  stage: build
  script: echo "Building the app"

.gitlab-ci.yml

 

 

4. 프로젝트의 CI/CD Pipeline에서 확인할 수 있다. 

 

 

Gitlab-Runner Docker 설치 

docker run -d --name gitlab-runner --network gitlab-runner-net -v C:\gitlab-runner:/etc/gitlab-runner -v //var/run/docker.sock:/var/run/docker.sock gitlab/gitlab-runner:latest

windows docker로 올릴 경우 docker.sock경로에 //가 두 개 붙어야한다. 

gitlab runner 를 도커로 실행하고 나머지는 똑같다.

$ docker exec -ti gitlab-runner bash
root@48aea5eded7e:/# gitlab-runner register

 


Gitlab Runner 연동 중 발생하는 오류 

 

This job is stuck because the project doesn't have any runners online assigned to it.

 

 

git runner Failed to connect to localhost port 80: Connection refused

runner의 config.toml 파일에 clone url추가 runner restart

[[runners]]
  name = "test-runner"
  url = "https://gitlab.example.com"
  token = "PzgMxRCqfHiNiPJyLQRC"
  executor = "docker"
  clone_url = "http://192.168.1.23"

 

 

참고사이트 : https://oramind.com/private-cicd-using-gitlab-docker/

728x90
반응형