У меня есть простой сценарий оболочки для установки плагинов Jenkins:
installPlugin() {
{...}
}
for f in ${plugin_dir}/*.hpi ; do
#without optionals
deps=$( unzip -p ${f} META-INF/MANIFEST.MF | tr -d '\r' | sed -e ':a;N;$!ba;s/\n //g' | grep -e "^Plugin-Dependencies: " | awk '{ print $2 }' | tr ',' '\n' | grep -v "resolution:=optional" | tr '\n' ' ' )
for plugin in $deps; do
installPlugin "$plugin" 1 && changed=1
done
done
Я вызываю этот сценарий из файла Docker следующим образом:
RUN JENKINS_HOME=$JENKINS_HOME \
http_proxy=$http_proxy \
https_proxy=$https_proxy \
$JENKINS_HOME/install_plugin.sh \
ace-editor:1.1 \
Несмотря на то, что Процедура unzip не установлена в Dockerfile, когда я запускаю docker build
, вывод все еще УСПЕШНЫЙ, даже если unzip отсутствует.Я хотел бы завершить сборку, если следующий шаг завершится неудачей:
deps=$( unzip -p ${f} META-INF/MANIFEST.MF | tr -d '\r' | sed -e ':a;N;$!ba;s/\n //g' | grep -e "^Plugin-Dependencies: " | awk '{ print $2 }' | tr ',' '\n' | grep -v "resolution:=optional" | tr '\n' ' ' )
Любая помощь очень ценится!
LE
Скрипт выдает следующее:
/var/jenkins/install_plugin.sh: line 62: unzip: command not found
deps=
Тем не менее, сборка докера не завершится неудачей, даже если этот скрипт завершится неудачей:
Successfully built 54f5a5ec567d