InfoGrab Docs

Docker를 사용하여 Docker 이미지 빌드

shell executor, Docker-in-Docker, 소켓 바인딩, 파이프 바인딩을 사용하여 GitLab CI/CD에서 컨테이너 이미지 빌드 및 푸시.

GitLab CI/CD와 Docker를 함께 사용하여 Docker 이미지를 생성할 수 있습니다. 예를 들어 애플리케이션의 Docker 이미지를 생성하고, 테스트하고, 컨테이너 레지스트리에 푸시할 수 있습니다. CI/CD job에서 Docker 명령을 실행하려면 docker 명령을 지원하도록 GitLab Runner를 구성해야 합니다. 이 방법은 privileged 모드가 필요합니다. 러너에서 privileged 모드를 활성화하지 않고 Docker 이미지를 빌드하려면 Docker 대안 을 사용할 수 있습니다. CI/CD job에서 Docker 명령 활성화 # CI/CD job에 Docker 명령을 활성화하려면 다음을 사용할 수 있습니다: shell executor 사용 Docker-in-Docker 사용 Docker 소켓 바인딩 사용 Docker 파이프 바인딩 사용 shell executor 사용 # CI/CD job에 Docker 명령을 포함하려면, shell executor를 사용하도록 러너를 구성할 수 있습니다. 이 구성에서 gitlab-runner 사용자가 Docker 명령을 실행하지만, 그러기 위한 권한이 필요합니다. GitLab Runner를 설치 합니다. 러너를 등록 합니다. shell executor를 선택합니다. 예: sudo gitlab-runner register -n \ --url "https://gitlab.com/" \ --registration-token REGISTRATION_TOKEN \ --executor shell \ --description "My Runner" GitLab Runner가 설치된 서버에 Docker Engine을 설치합니다. 지원 플랫폼 목록을 확인하세요. gitlab-runner 사용자를 docker 그룹에 추가합니다: sudo usermod -aG docker gitlab-runner gitlab-runner 가 Docker에 접근할 수 있는지 확인합니다: sudo -u gitlab-runner -H docker info GitLab에서 Docker가 작동하는지 확인하기 위해 .gitlab-ci.yml 에 docker info 를 추가합니다: default: before_script: - docker info build_image: script: - docker build -t my-docker-image . - docker run my-docker-image /script/to/run/tests 이제 docker 명령을 사용할 수 있습니다(필요한 경우 Docker Compose도 설치 가능). gitlab-runner 를 docker 그룹에 추가하면 gitlab-runner 에게 실질적으로 전체 root 권한을 부여하게 됩니다. 자세한 내용은 docker 그룹의 보안 을 참조하세요. Docker-in-Docker 사용 # "Docker-in-Docker" ( dind )의 의미: 등록된 러너가 Docker executor 또는 Kubernetes executor 를 사용합니다. ex