Docker 컨테이너에서 CI/CD job 실행
전용 CI/CD 빌드 서버 또는 로컬 머신에서 호스팅되는 Docker 컨테이너에서 CI/CD job을 실행하는 방법을 설명합니다.
전용 CI/CD 빌드 서버 또는 로컬 머신에서 호스팅되는 Docker 컨테이너에서 CI/CD job을 실행할 수 있습니다. Docker 컨테이너에서 CI/CD job을 실행하려면 다음을 수행해야 합니다. 러너를 등록하고 Docker executor 를 사용하도록 설정합니다. .gitlab-ci.yml 파일에서 CI/CD job을 실행할 컨테이너 이미지를 지정합니다. 선택 사항. MySQL과 같은 다른 서비스를 컨테이너에서 실행합니다. .gitlab-ci.yml 파일에 services 를 지정하면 됩니다. Docker executor를 사용하는 러너 등록 # Docker와 함께 GitLab Runner를 사용하려면 Docker executor를 사용하는 러너를 등록 해야 합니다. 다음 예시는 서비스를 제공하기 위한 임시 템플릿을 설정하는 방법을 보여줍니다. cat > /tmp/test-config.template.toml << EOF [[runners]] [runners.docker] [[runners.docker.services]] name = "postgres:latest" [[runners.docker.services]] name = "mysql:latest" EOF 그런 다음 이 템플릿을 사용하여 러너를 등록합니다. sudo gitlab-runner register \ --url "https://gitlab.example.com/" \ --token "$RUNNER_TOKEN" \ --description "docker-ruby:2.6" \ --executor "docker" \ --template-config /tmp/test-config.template.toml \ --docker-image ruby:3.3 등록된 러너는 ruby:2.6 Docker 이미지를 사용하며, postgres:latest 와 mysql:latest 두 서비스를 실행합니다. 이 두 서비스는 모두 빌드 프로세스 중에 접근할 수 있습니다. 이미지란 # image 키워드는 Docker executor가 CI/CD job을 실행하는 데 사용하는 Docker 이미지의 이름입니다. 기본적으로 executor는 Docker Hub 에서 이미지를 가져옵니다. 하지만 gitlab-runner/config.toml 파일에서 레지스트리 위치를 설정할 수 있습니다. 예를 들어 로컬 이미지를 사용하도록 Docker pull 정책 을 설정할 수 있습니다. 이미지와 Docker Hub에 대한 자세한 내용은 Docker 개요 를 참조합니다. 이미지 요구 사항 # CI/CD job을 실행하는 데 사용되는 모든 이미지에는 다음 애플리케이션이 설치되어 있어야 합니다. sh 또는 bash grep .gitlab-ci.yml 파일에서 image 정의 # 모든 job에 사용되는 이미지와 런타임 중에 사용할 서비스 목록을 정의할 수 있습니다. default: image: ruby:2.6 services: - postgres:16.10 before_script: - bundle