2017-12-14 6 views
0

Jenkinsfile에 설명 된 Jenkins 파이프 라인이 있습니다.Jenkins 파이프 라인 : docker.image(). inside() 전에 이미지 업데이트

빌드 단계 중에 모든 빌드 단계가 실행되는 도커 컨테이너가 시작됩니다. 이런 식으로 뭔가 :

docker.image('node:8').inside() { } 

나는이 최신 고정 표시기 이미지를 가져 오지 않는 것을 알 수 있지만 항상 원래 고정 표시기 허브에서 가져온 된 이미지를 사용합니다. node:8 이미지가 아직 최신 상태이고 새 이미지를 가져 오지 않는 경우이 이미지가 고정 다리 허브에서 확인 될 것으로 예상했습니다. 로컬 레지스트리에 최신 이미지가 캐시되지 않은 경우 어떻게 새 이미지 다운로드를 트리거 할 수 있습니까?

답변

1

젠킨스의 bash는 쉘 프롬프트에서

docker rmi image_name 

: 나는 그렇게하고 싶지 않아

sh 'docker pull node:8' 
+0

기본적으로 지금은 파이프 라인 api를 통해이 작업을 수행하고 있습니다.이 docker.image ('node : 8'). pull()'과 같은 것입니다. – lanoxx

+0

내 혼란을 일으키는 이유는 Jenkins의 docker 변수 참조에서 'inside'함수의 경우 pull이 필요하지 않기 때문에 반복 호출을 수행한다고 가정했기 때문입니다. 그러나 이미지는 시스템 상에 아직 존재하지 않는다면 당겨진다. – lanoxx

0

빌드하기 전에 로컬 이미지를 제거하는 것이 좋습니다. 당신은 항상이는 변경된 이미지 레이어 다운로드합니다 이미지를 당길 수

+0

을 때문에 캐싱에 대한 전체적인 생각은 무효화됩니다. 내가 사용하는 이미지는 불과 몇 달에 한 번씩 업데이트 될 수 있지만 일반적으로 하루에 여러 번 프로젝트를 만들고 각 빌드마다 새 이미지를 다운로드하지 않으려합니다. 새 업스트림 버전을 사용할 수있는 경우에만 새 이미지를 다운로드하는 솔루션이 필요합니다. – lanoxx