在Dockerfile中我尝试使用curl下载工件。我已经检查过虽然工件不存在(因此获得404),但是docker构建仍然在运行。
RUN curl -H 'Cache-Control: no-cache' ${STANDALONE_LOCATION} -o $JBOSS_HOME/standalone/configuration/standalone.xml
有没有办法检查卷曲响应代码是否为200,否则会抛出错误?
答案 0 :(得分:1)
您可以将-f
(或--fail
)添加到curl调用,这会导致curl在服务器错误上无提示失败。来自curl manpage:
-f / - 失败
(HTTP)服务器错误无提示失败(根本没有输出)。这主要是为了更好地启用脚本等以更好地处理失败的尝试。在正常情况下,当HTTP服务器无法传递文档时,它会返回一个HTML文档(通常也会描述原因和更多内容)。此标志将阻止curl输出该值并返回错误22。
此方法不是故障安全的,并且有时会出现非成功的响应代码,特别是涉及身份验证时(响应代码401和407)。