2017-05-10 1 views
0

Docker로 무언가를 빌드하기 위해 baven을 실행하는 maven이 있습니다. "도커 내가 요청하고있어 버전을 찾을 수 없을 때 내 문제가 도커를 실패 시키거나 버전을 확인하는 방법

for file in src/main/thrift/*.thrift; do 
    echo "Compiling ${file}" 
    docker run {...} thrift:${THRIFT_VERSION} thrift {...} 
done 

는,이 콘솔에 오류가 표시

하지만 그렇지 않습니다 :
<plugin> 
    ... 
    <artifactId>maven-antrun-plugin</artifactId> 
     ... 
      <exec executable="${basedir}/generate.sh" failonerror="true"> 
           <arg value="${thrift.version}" /> 
... 

배쉬 스크립트

같은 것을 실행 실패 ": 그것은 단지 건물을 유지합니다.

[exec] Compiling src/main/thrift/amsException.thrift 
[exec] docker: Tag 0.9.0 not found in repository docker.io/library/thrift. 
[exec] See 'docker run --help'. 
[exec] Unable to find image 'thrift:0.9.0' locally 

결과적으로 받는다는는

[INFO] ------------------------------------------------------------------------ 
[INFO] BUILD SUCCESS 
[INFO] ------------------------------------------------------------------------ 

가 어떻게이 버전을 찾을 수 없을 때 도커 던져 및 오류 만들 수 있다고? 최종 목표는 이런 일이 발생했을 때 Maven이 클린 인스톨에 실패하는 것입니다.

건배!

+0

다른 옵션은 이전에 버전이 존재하는지 확인하는 것이지만 여전히 오류가 발생합니다. – ldepablo

답변

1

종료 코드 docker run을 확인할 수 있습니다. 0이 아니면 스크립트를 중단하십시오.

for file in src/main/thrift/*.thrift; do 
    echo "Compiling ${file}" 
    docker run {...} thrift:${THRIFT_VERSION} thrift {...} 
    if [ $? != 0 ]; then 
     exit -1 
    fi 
done 
+0

한 번에 할 수 있고,'$?'를 확인할 필요가 없습니다 :'docker run ...; 그때 ...; fi' – heemayl

관련 문제