컨테이너 레지스트리에 컨테이너 이미지 빌드 및 푸시
Docker 명령이나 CI/CD 파이프라인으로 컨테이너 이미지를 빌드하여 GitLab 레지스트리에 푸시합니다.
컨테이너 이미지를 빌드하고 푸시하기 전에 컨테이너 레지스트리로 인증 해야 합니다. Docker 명령 사용 # Docker 명령을 사용하여 컨테이너 레지스트리에 컨테이너 이미지를 빌드하고 푸시할 수 있습니다: 컨테이너 레지스트리로 인증 합니다. 빌드 또는 푸시를 위한 Docker 명령을 실행합니다. 예를 들어: 빌드: docker build -t registry.example.com/group/project/image . 푸시: docker push registry.example.com/group/project/image GitLab CI/CD 사용 # GitLab CI/CD 를 사용하여 컨테이너 레지스트리에서 컨테이너 이미지를 빌드, 푸시, 테스트 및 배포합니다. .gitlab-ci.yml 파일 구성 # .gitlab-ci.yml 파일을 구성하여 컨테이너 레지스트리에 컨테이너 이미지를 빌드하고 푸시할 수 있습니다. 여러 작업에 인증이 필요한 경우 인증 명령을 before_script 에 넣습니다. 빌드 전에 기본 이미지의 변경 사항을 가져오기 위해 docker build --pull 을 사용합니다. 약간 더 오래 걸리지만 이미지가 최신 상태인지 확인합니다. 각 docker run 전에 방금 빌드된 이미지를 가져오기 위해 명시적 docker pull 을 수행합니다. 이 단계는 이미지를 로컬로 캐시하는 여러 러너를 사용하는 경우 특히 중요합니다. 이미지 태그에 Git SHA를 사용하면 각 작업이 고유하므로 오래된 이미지가 없어야 합니다. 그러나 종속성이 변경된 후 특정 커밋을 다시 빌드하면 오래된 이미지가 있을 수 있습니다. 여러 작업이 동시에 발생할 수 있으므로 latest 태그에 직접 빌드하지 마세요. Docker-in-Docker 컨테이너 이미지 사용 # 컨테이너 레지스트리 또는 의존성 프록시와 함께 자체 Docker-in-Docker(DinD) 컨테이너 이미지를 사용할 수 있습니다. DinD를 사용하여 CI/CD 파이프라인에서 컨테이너화된 애플리케이션을 빌드, 테스트 및 배포합니다. 사전 조건: Docker-in-Docker 설정. 컨테이너 레지스트리에서 의존성 프록시 사용 GitLab 컨테이너 레지스트리에 저장된 이미지를 사용하려는 경우 이 방법을 사용합니다. .gitlab-ci.yml 파일에서: 레지스트리를 가리키도록 image 및 services 를 업데이트합니다. 서비스 별칭 을 추가합니다. .gitlab-ci.yml 은 다음과 유사해야 합니다: build: image: $CI_REGISTRY/group/project/docker:24.0.5-cli services: - name: $CI_REGISTRY/group/project/docker:24.0.5-dind alias: docker stage: build script: - docker build -t my-docker-image . - docker run my-docker-image /script/to/run/tests 더 빠른 빌드와 속도 제한 방지를 위해 Docker
