Как заставить Docker выйти из строя или проверить версию существует

У меня есть Maven запускает Bash, чтобы построить что-то с Docker.

<plugin>
    ...
    <artifactId>maven-antrun-plugin</artifactId>
        ...
            <exec executable="${basedir}/generate.sh" failonerror="true">
                                <arg value="${thrift.version}" />
...

Скрипт bash работает примерно так:

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

Моя проблема в том, что когда Docker не может найти запрашиваемую версию, он показывает ошибку в консоли, но не "не работает": он просто продолжает сборку.

 [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

и, следовательно, Maven говорит

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

Как заставить Docker выдать ошибку и ошибку, когда он не может найти версию? Моей конечной целью является то, что Maven не сможет выполнить чистую установку, когда это произойдет.

Ура!

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
Другие вопросы по тегам