Как заставить 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