Остановить докер, когда команда run возвращает код ошибки? - PullRequest
0 голосов
/ 01 ноября 2019

Как вы говорите Docker прекратить выполнение Dockefile, когда одна из его команд RUN возвращает код ошибки?

У меня есть такой Dockerfile:

FROM ubuntu:18.04
RUN apt install -yq `cat requirements.txt | tr "\\n" " "`
RUN ./some_other_setup.sh
RUN ./my_tests.sh

и иногда apt install потерпит неудачу при кратковременном отключении сети. Однако Docker продолжит выполнение других команд RUN, даже если они тоже потерпят неудачу, поскольку зависят от успешного выполнения apt install.

1 Ответ

0 голосов
/ 02 ноября 2019

Если вы хотите перехватить ошибку и остановить ее, вы можете сделать это, как скрипт Linux

RUN set -e && apt install -yq `cat requirements.txt | tr "\\n" " "`

, поэтому set -e перехватит все ошибки и остановится, если они произойдут.

ИЛИ

вы можете предотвратить ошибку apt install, добавив RUN apt-get install -f, который установит недостающие зависимости.

Также, если apt-get/apt install имеет какие-либо ошибки, вы можете сделать

apt-get install [your stuff] || true

, которая всегда будетпередать даже с ошибками, а затем вы делаете apt-get install -f, поэтому у вас всегда есть все необходимые зависимости

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...