Ваша команда, run-tests.sh
, должна выйти с ненулевым кодом выхода, и докер прекратит сборку.В этом случае это произошло:
The command '/bin/bash -c cd test; ./run-tests.sh' returned a non-zero code: 1
Все, что вы запускаете для вызова docker build
, должно обрабатывать этот код выхода и останавливаться в этой точке.Поведение Docker состоит в том, чтобы дать вам код выхода для обозначения ошибки:
$ cat df.fail
FROM busybox
RUN exit 1
RUN echo still running
$ docker build -f df.fail .
Sending build context to Docker daemon 23.04kB
Step 1/3 : FROM busybox
---> 59788edf1f3e
Step 2/3 : RUN exit 1
---> Running in 70d90fb88d6e
The command '/bin/sh -c exit 1' returned a non-zero code: 1
$ echo $?
1
Из приведенного выше примера вы можете видеть, что docker останавливается, как только команда возвращает ненулевой код выхода, онане запускайте строку echo still running
, и есть ненулевой код возврата из docker build
, который вы можете обрабатывать с помощью всего, что вы используете для запуска сборки.