일반 GitLab Runner Docker 이미지 사용
GitLab Runner Docker 이미지( Ubuntu 또는 Alpine Linuxgitlab-runner 기반)는 GitLab Runner가 호스트에 직접 설치된 경우와 같이 표준 명령을 둘러싼 래퍼로 설계되었습니다 .
일반적인 규칙은 일반적으로 다음과 같이 실행되는 모든 GitLab Runner 명령입니다.
gitlab-runner <runner command and options...>
다음과 같이 실행할 수 있습니다.
docker run <chosen docker options...> gitlab/gitlab-runner <runner command and options...>
예를 들어 GitLab Runner 명령에 대한 최상위 도움말 정보를 가져오는 것은 다음과 같이 실행할 수 있습니다.
docker run --rm -t -i gitlab/gitlab-runner --help
NAME:
gitlab-runner - a GitLab Runner
USAGE:
gitlab-runner <global options> command <command options> <arguments...>
VERSION:
10.7.0 (7c273476)
(...)
간단히 말해서 명령의 gitlab-runner일부는 로 대체되고 docker run [docker options] gitlab/gitlab-runner나머지 명령은 레지스터 문서 에 설명된 대로 유지됩니다 . 유일한 차이점은 gitlab-runner명령이 Docker 컨테이너 내부에서 실행된다는 것입니다.
Docker 이미지 설치 및 컨테이너 시작
시작하기 전에 Docker가 설치되어 있는지 확인하십시오 .
Docker 컨테이너 내에서 실행하려면 gitlab-runner컨테이너를 다시 시작할 때 구성이 손실되지 않는지 확인해야 합니다. 이를 위해 아래에 설명된 두 가지 옵션이 있습니다.
GitLab Runner와 관련된 가장 일반적인 문제에 대해 설명 하는 FAQ 섹션 을 반드시 읽으십시오 .
- 를 사용하는 경우 명령 에 추가 하여 session_server포트도 노출해야 합니다 .8093-p 8093:8093docker run
- 자동 크기 조정 기능에 Docker Machine 실행기를 사용하려면 Docker Machine 스토리지 경로도 마운트해야 합니다 /root/.docker/machine.
- -v /srv/gitlab-runner/docker-machine-config:/root/.docker/machine시스템 볼륨 마운트용 으로 추가
- -v docker-machine-config:/root/.docker/machineDocker 명명된 볼륨 에 추가하여
옵션 1: 로컬 시스템 볼륨 마운트를 사용하여 Runner 컨테이너 시작
이 예에서는 gitlab-runner컨테이너에 탑재된 구성 볼륨에 대해 로컬 시스템을 사용합니다. 이 볼륨은 구성 및 기타 리소스에 사용됩니다.
docker run -d --name gitlab-runner --restart always \
-v /srv/gitlab-runner/config:/etc/gitlab-runner \
-v /var/run/docker.sock:/var/run/docker.sock \
gitlab/gitlab-runner:latest
옵션 2: Docker 볼륨을 사용하여 Runner 컨테이너 시작
이 예에서는 구성 컨테이너를 사용하여 사용자 지정 데이터 볼륨을 탑재할 수 있습니다.
- Docker 볼륨을 생성합니다.
-
docker volume create gitlab-runner-config
- 방금 생성한 볼륨을 사용하여 GitLab Runner 컨테이너를 시작합니다.
-
docker run -d --name gitlab-runner --restart always \ -v /var/run/docker.sock:/var/run/docker.sock \ -v gitlab-runner-config:/etc/gitlab-runner \ gitlab/gitlab-runner:latest
주자 등록
마지막 단계는 새 주자를 등록하는 것 입니다. GitLab Runner 컨테이너는 등록될 때까지 작업을 선택하지 않습니다.
구성 업데이트
에서 구성을 변경하는 경우 변경 사항 config.toml을 적용하려면 실행기를 다시 시작해야 할 수 있습니다. 다음 을 사용하는 대신 전체 컨테이너를 다시 시작해야 합니다 gitlab-runner restart.
docker restart gitlab-runner
업그레이드 버전
최신 버전(또는 특정 태그)을 가져옵니다.
docker pull gitlab/gitlab-runner:latest
기존 컨테이너를 중지하고 제거합니다.
docker stop gitlab-runner && docker rm gitlab-runner
원래와 같이 컨테이너를 시작합니다.
docker run -d --name gitlab-runner --restart always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /srv/gitlab-runner/config:/etc/gitlab-runner \
gitlab/gitlab-runner:latest
GitLab Runner 로그 읽기
GitLab Runner가 포그라운드 작업으로 시작되면(로컬로 설치된 바이너리이든 Docker 컨테이너 내부이든 상관없이) 로그가 표준 출력으로 인쇄됩니다. GitLab Runner가 시스템 서비스(예: Systemd 사용)로 시작되면 대부분의 경우 Syslog 또는 기타 시스템 로깅 메커니즘을 통해 로그가 기록됩니다.
GitLab Runner를 Docker 기반 서비스로 시작한 경우, gitlab-runner ...명령어가 컨테이너의 주요 프로세스이기 때문에 명령어를 사용하여 로그를 읽을 수 있습니다 docker logs.
예를 들어 GitLab Runner가 다음 명령으로 시작된 경우:
docker run -d --name gitlab-runner --restart always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /srv/gitlab-runner/config:/etc/gitlab-runner \
gitlab/gitlab-runner:latest
다음을 사용하여 로그를 얻을 수 있습니다.
docker logs gitlab-runner
여기서 은 첫 번째 명령으로 gitlab-runner설정된 컨테이너의 이름입니다 .--name gitlab-runner
Docker 설명서 페이지 에서 컨테이너 로그 처리에 대한 자세한 정보를 찾을 수 있습니다 .
신뢰할 수 있는 SSL 서버 인증서 설치
GitLab CI 서버가 자체 서명된 SSL 인증서를 사용하는 경우 GitLab CI 서버 인증서가 서로 통신할 수 있도록 GitLab Runner 컨테이너에서 신뢰할 수 있는지 확인해야 합니다.
이미지 는 gitlab/gitlab-runner에서 신뢰할 수 있는 SSL 인증서를 찾도록 구성되어 있지만 구성 옵션 /etc/gitlab-runner/certs/ca.crt을 사용하여 변경할 수 있습니다 .-e "CA_CERTIFICATES_PATH=/DIR/CERT"
ca.crt파일을 certs데이터 볼륨(또는 컨테이너)의 디렉터리에 복사합니다 . 파일 에는 ca.crtGitLab Runner가 신뢰하도록 하려는 모든 서버의 루트 인증서가 포함되어야 합니다. GitLab Runner 컨테이너 ca.crt는 시작 시 파일을 가져오므로 컨테이너가 이미 실행 중인 경우 변경 사항을 적용하려면 컨테이너를 다시 시작해야 할 수 있습니다.
도커 이미지
다음 다중 플랫폼 Docker 이미지를 사용할 수 있습니다.
- gitlab/gitlab-runner:latest 우분투 기반.
- gitlab/gitlab-runner:alpine 훨씬 더 작은 설치 공간(~160/350MB Ubuntu 대 ~45/130MB Alpine 압축/압축 해제)으로 Alpine을 기반으로 합니다.
Ubuntu 및 Alpine 이미지 모두에 대한 가능한 빌드 지침 은 GitLab Runner 소스를 참조하십시오 .
GitLab Runner Docker 이미지 만들기
2021-08-03 현재 Alpine 기반 GitLab Runner Docker 이미지는 Alpine 3.12.0을 사용합니다. 그러나 GitLab 리포지토리에서 사용할 수 있게 되기 전에 이미지의 OS를 업그레이드할 수 있습니다.
gitlab-runner최신 Alpine 버전용 Docker 이미지 를 빌드하려면 :
- 생성 alpine-upgrade/Dockerfile.
ARG GITLAB_RUNNER_IMAGE_TYPE
ARG GITLAB_RUNNER_IMAGE_TAG
FROM gitlab/${GITLAB_RUNNER_IMAGE_TYPE}:${GITLAB_RUNNER_IMAGE_TAG}
RUN apk update
RUN apk upgrade
- 업그레이드된 gitlab-runner이미지를 만듭니다.
GITLAB_RUNNER_IMAGE_TYPE=gitlab-runner GITLAB_RUNNER_IMAGE_TAG=alpine-v13.12.0 docker build -t $GITLAB_RUNNER_IMAGE_TYPE:$GITLAB_RUNNER_IMAGE_TAG --build-arg GITLAB_RUNNER_IMAGE_TYPE=$GITLAB_RUNNER_IMAGE_TYPE --build-arg GITLAB_RUNNER_IMAGE_TAG=$GITLAB_RUNNER_IMAGE_TAG -f alpine-upgrade/Dockerfile alpine-upgrade
- 업그레이드된 gitlab-runner-helper이미지를 만듭니다.
GITLAB_RUNNER_IMAGE_TYPE=gitlab-runner-helper GITLAB_RUNNER_IMAGE_TAG=x86_64-v13.12.0 docker build -t $GITLAB_RUNNER_IMAGE_TYPE:$GITLAB_RUNNER_IMAGE_TAG --build-arg GITLAB_RUNNER_IMAGE_TYPE=$GITLAB_RUNNER_IMAGE_TYPE --build-arg GITLAB_RUNNER_IMAGE_TAG=$GITLAB_RUNNER_IMAGE_TAG -f alpine-upgrade/Dockerfile alpine-upgrade
SE리눅스
일부 배포판(CentOS, RedHat, Fedora)은 기본적으로 SELinux를 사용하여 기본 시스템의 보안을 강화합니다.
그러한 구성을 다룰 때는 특별한 주의를 기울여야 합니다.
- Docker 실행기 를 사용하여 컨테이너에서 빌드를 실행하려면 /var/run/docker.sock. 그러나 SELinux가 시행 모드인 Permission denied경우 액세스할 때 오류가 표시됩니다 /var/run/docker.sock. 이 문제를 해결 하려면 selinux-dockersock 을 설치 하십시오.
- 호스트에 영구 디렉토리가 생성되었는지 확인하십시오: mkdir -p /srv/gitlab-runner/config.
- :Z볼륨에서 Docker를 실행 합니다.
docker run -d --name gitlab-runner --restart always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /srv/gitlab-runner/config:/etc/gitlab-runner:Z \
gitlab/gitlab-runner:latest
'GitLab_가이드' 카테고리의 다른 글
GitLab 러너 투구 차트 (0) | 2022.08.02 |
---|---|
FreeBSD에 GitLab Runner 설치 (0) | 2022.08.02 |
Geo를 사용한 다중 노드/HA 배포 (0) | 2022.08.02 |
Redis HA 사용(Sentinel 사용) (0) | 2022.08.02 |
PostgreSQL HA 사용 (0) | 2022.08.02 |