Любая команда оболочки, которая потерпит неудачу (возвращает состояние выхода, отличное от 0), остановит сборку. Некоторые примеры:
# Probably the most idiomatic shell scripting: if the test
# returns false, then the "&&" won't run mkdir, and the whole
# command returns false
RUN test -d /app/bin -a ... \
&& mkdir /app/control/bin
# "test" and "[" are the same thing
RUN [ -d /app/bin -a ... ] \
&& mkdir /app/control/bin
# This first step will just blow up the build if it fails
RUN [ -d /app/bin -a ... ]
# Then do the on-success command
RUN mkdir /app/control/bin
# Your original suggestion
# /bin/false does nothing but returns 1
RUN if [ -d /app/bin -a ... ]; \
then mkdir /app/control/bin; \
else false; \
fi