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 58

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 (или любое другое исполнение, это не ограничивается сделать).