2017-09-26 2 views
0

젠킨스에서 Docker 컨테이너를 사용하여 빌드 파이프 라인을 구성하고 있습니다. 이미지를 작성하고 싶지만 해당 이미지가 젠킨스와 동일한 서버에없는 경우에만 실행 중입니다. 나는 이것을하는 가장 간단하고 가장 우아한 방법을 쫓아 왔지만, 나는 무엇인가를 고민하고있다.젠킨스에 존재하지 않는 경우에만 도커 이미지 작성하기

+0

젠킨스 고정 플러그 인이나 직접 쉘 명령을 사용하고 있습니까? – yamenk

+0

쉘 명령을 사용하고 있습니다 만 가장 우아한 방법을 제공한다면 플러그인을 사용하여 기쁘게 생각합니다. – ChrisAdkin

+0

이미지가 이미있는 경우 빌드하지 않으려는 이유가 있습니까? 이미지를 만들 때마다 이미지의 내용이 변경되지 않는 한 Docker 빌드 캐시는 이미 존재하는 이미지를 다시 빌드하는 것이 거의 즉각적임을 의미합니다. –

답변

0

당신의 출력을 수행 할 수 있습니다

docker image ls 

그런 다음 당신이 구축하고자하는 이미지의 이름을 grep으로.

그러나 Jenkins에서 이미지를 "빌드"하면 기존 이미지가 동일해야한다고하더라도 "새로운"이미지가 생성됩니다. 어떻게 알 수 있습니까?

도커 이미지는 템플릿입니다. 다른 호스트에서 이미지를 다시 작성하는 것처럼 들릴 수 있습니까? 그렇다면 중앙 (개인) 레지스트리를 사용하고 해당 이미지가 필요할 수있는 다양한 호스트에서 가져 오는 것이 좋습니다.

2

question에 대한 답변에서 설명한 것처럼 다음을 사용하여 이미지가 있는지 확인할 수 있습니다.

if [[ "$(docker images -q myimage:mytag 2> /dev/null)" == "" ]]; then 
    # do something 
fi 
+0

고마움, 사과, 나는이 질문에 진술해야한다, 나는 창문에서 작동하는 방법이 필요합니다. – ChrisAdkin

+0

그런데, 나는 아마도 당신이 나에게 주었던 것을 PowerShell을 사용하기 위해 채택 할 수 있습니다. – ChrisAdkin

+0

@ChrisAdkin 예 기본적으로'docker images'의 -q 옵션은 윈도우에서 똑같이 작동해야합니다. – yamenk

관련 문제