Dockerfile build - можно игнорировать ошибку?
У меня файла Docker. При построении образа сборка завершается с ошибкой:
automake: error: no 'Makefile.am' found for any configure output
Error build: The command [/bin/sh -c aclocal && autoconf && automake -a] returned a non-zero code: 1
который на самом деле безвреден. Библиотека строит нормально, но Docker останавливает сборку после получения этой ошибки. Есть ли способ, которым я могу поручить докеру просто игнорировать это?
2 ответа:
конечно. Docker просто отвечает на коды ошибок, возвращаемые
RUN
shell-скрипты вDockerfile
. Если вашDockerfile
есть что-то типа:RUN make
вы можете заменить это на:
RUN make; exit 0
это всегда будет возвращать a
0
(успех) код выхода. Недостатком здесь является то, что ваш образ будет казаться успешным, даже если есть are фактические ошибки в процессе сборки.
Это может быть интересно тем, чьи потенциальные ошибки в их изображениях не достаточно безобиднычтобы остаться незамеченным/вход. (Кроме того, недостаточно rep. для комментариев, поэтому здесь в качестве ответа.)
как уже отмечалось, недостаток
RUN make; exit 0
вы не узнаете, если ваша сборка не удалась. Следовательно, скорее используйте что-то вроде:make test 2>&1 > /where/ever/make.log || echo "There were failing tests!"
как это, вы получаете уведомление через журнал процесса сборки образа docker, и вы можете увидеть, что именно пошло плохо во время
make
(или любое другое исполнение, это не ограничивается сделать).