Есть ли какой-нибудь ASSERT в Docker?
В этом конкретном случае я хочу иметь возможность проверить, что переменная среды была установлена, и принудительно завершить сборку, если это не так.
Код, который вызвал у меня проблемы:
echo ${LICENSE_KEY} > /etc/license.key
Мне было поручено заставить код предыдущего сотрудника работать правильно, и я обнаружил, что этот файл пуст. Меня поражает, что эта переменная, которая не установлена, должна быть фатальной для этого скрипта сборки и избавила бы меня от отладки.
Из моего прочтения документации по Docker (начиная с Docker 0.7) я могу запустить команду оболочки, которая возвращает ненулевое состояние и это может привести к сбою сборки. например,
RUN [ ! -z "${LICENSE_KEY}" ]
Хотя это приведет к появлению дополнительных слоев и кода в изображении, для других это может быть неочевидным, поскольку оно предназначено только для отладки / защиты и не содержит явной причины сбоя в сочетании с другими командами. Я действительно ожидал, что у докера будет что-то похожее на:
ASSERT ${LICENSE_KEY} != ""