Сборка Docker не останавливается при ошибке команды запуска - PullRequest
0 голосов
/ 01 мая 2019

У меня есть это в Dockerfile

RUN eval `ssh-agent -s` && ssh-add /root/.ssh/id_rsa

и я вижу:

Команда '/ bin / sh -c eval ssh-agent -s && ssh-add /root/.ssh/id_rsa 'вернул ненулевой код: 1

но сборка докера продолжается, пока не достигнет точки ВВОДА, а затем завершится. Как я могу остановить процесс сборки Docker, если одна из команд RUN завершается с ненулевым значением?

1 Ответ

2 голосов
/ 01 мая 2019

Docker не соединяет различные части вашей команды запуска как логический AND. Это больше похоже на OR

Сделайте это:

RUN eval `ssh-agent -s` 
RUN ssh-add /root/.ssh/id_rsa

TL; DR: Краткий пример почему:

Это работает до конца:

FROM alpine
RUN exit 0
RUN echo Hello

Это останавливается на первом RUN:

FROM alpine
RUN exit 1
RUN echo Hello

Этот прогон до конца (как ваш пример):

FROM alpine
RUN exit 0 && exit 1
RUN echo Hello
...