2016-11-22 1 views
4

내 목표는 councourse 빌드 파이프 라인을 사용하여 빌드 된 Java 프로젝트를 빌드하고 패키지화하고 테스트하는 것입니다.빌드간에 메이븐 저장소를 캐시하는 방법은 무엇입니까?

설정이 적절하고 모든 것이 잘 실행되지만 빌드 시간은 우리 넥서스의 가난한 다운로드 속도 때문에 너무 깁니다.

내 빌드 작업 YML 파일이 받는다는 빌드에 대한 기초로 다음과 같은 리소스를 사용

# ... 
image_resource: 
    type: docker-image 
    source: 
    repository: maven 
    tag: '3.3-jdk-8' 
# ... 

나는 모든 buils에 대해 "백지"를 갖는 somwhat 설계 광장에 내장되어 있다는 사실을 알고 .

이제 내 질문에 : 로컬 메이븐 리포지토리를 캐시하는 좋은 방법은 무엇입니까? (예 : 스프링과 종속성과 같은 기본 기능을 최소한 포함하는)? 종속성이 내장 이미

  • 지금까지와 같은 나에게 필요한 종속성을 제공하는 ressource 만들기있는 고정 표시기 이미지를 사용

    1. :

      다음 옵션은 내 마음에 와서 Concourse가 빌드 작업의 기본으로 사용되는 도커 이미지를 캐시하지 않는 것처럼 보이기 때문에 (옵션 1) 빌드 크기가 작아지지 않습니다. (또는 내가 잘못 생각합니까?)

      계속하기 전에 옵션 2)를 통해 나에게 이점이 있는지 확인하고 싶습니다. - 콩코드 캐시 고정 표시기 이미지를 자원으로 사용합니까?

      내가 상대적으로 새로운 카운셀링을 접하기 때문에 뭔가를 놓칠 수도 있습니다. 내가 여기에 분명히 진술을하도록하면 용서해주게. :)

    답변

    4
    • 이 넥서스 지역이라고 가정 할 때, 나는 로컬 넥서스 같은과 Artifactory를 사용하는 등, 그에서 가난한 다운로드 속도가 이유를 조사 할 것은 현재 캐싱을 할 수있는 가장 쉬운 방법입니다. 캐시 된 종속성의 수명을 관리하므로 필요에 따라 캐시되는 종속성이 없으며 새로운 종속성이 사용될 때 추가됩니다.
    • 단일 작업 내에서 캐시하려는 경우 output 작업의 캐시 된 종속성 폴더 (.m2 폴더)를 다른 작업의 input으로 사용하십시오.
    • 당신은 작업 사이에 캐시하려면 다음 수 :
      • 캐시 폴더와 고정 표시기 이미지를 구축하지만 다른 파이프 라인을 통해 가능할 수 있지만 당신은, 의존성이 업데이트 될 때 것을 관리해야합니다 .
      • create a resource이 캐시를 관리합니다. 예를 들어, 입력이 git-resource인데도 불구하고 gradle-cache-resource 또는 npm-cache-resource을 확인하십시오.
    • 캐싱을 수행하기 위해 내장 된 방법은 논의되고 있습니다. here.

    나는 콩 코스 CI를 작업에 사용 캐시 고정 표시기 이미지를하지 생각하지만, 또한 리소스를 전달하는 작업의 image 매개 변수를 사용하여 다음 파이프 라인의 자료로있을 수 있습니다. volumes 명령을 fly으로 사용하여 캐시 된 내용과 기간을 볼 수 있습니다.

    +0

    , 주제의 광범위한 covereage 주셔서 감사합니다 - 이것은 광대 한 질문을 할 때 기대했던 것입니다. :) 미리 채워진 로컬 메이븐 저장소를 사용하여 빌드를 수행하는 데 사용하는 기본 이미지를 만드는 별도의 파이프 라인이 필요했습니다. 필자의 경우 2 분, 빌드 당 10 분에서 크게 줄어 들었습니다. – sschuth

    +2

    @sschuth 중앙 홀 팀은 Ruby gem을 위해 [blog post] (http://engineering.pivotal.io/post/concourse-docker-image-resource-cache-tutorial/)를 발행했습니다. – materialdesigner

    0

    나는 concourse가 사실 캐시 도커 이미지를한다는 것을 확인할 수 있습니다. 따라서 모든 종속성이있는 이미지를 만드는 것은 좋지 않은 옵션 일 수 있습니다.

    +0

    예, 이제 작업에 사용되는 고정 이미지의 캐싱이 작동하는지 확인할 수 있습니다. – sschuth

    관련 문제