如何解决如何从dockerfile中的Jfrog工件中获取战争文件?收到HTTP 401错误
我创建了一个声明性的詹金斯管道,其阶段之一如下:
stage('Docker Image'){
steps{
bat 'docker build -t HMT/demo-application:%BUILD_NUMBER% --no-cache -f Dockerfile .'
}
}
这是docker文件:
FROM tomcat:alpine
RUN wget -O /usr/local/tomcat/webapps/launchstation04.war http://localhost:8082/artifactory/demoArtifactory/com/demo/0.0.1-SNAPSHOT/demo-0.0.1-SNAPSHOT.war
EXPOSE 9100
CMD /usr/local/tomcat/bin/cataline.bat run
我收到以下错误。
[91m/bin/sh:
01:33:28 [0mThe command '/bin/sh -c wget -O /usr/local/tomcat/webapps/launchstation04.war http://localhost:8082/artifactory/demoArtifactory/com/demo/0.0.1-SNAPSHOT/demo-0.0.1-SNAPSHOT.war' returned a non-zero code: 127
更新:
我已将命令更新为
RUN wget -O /usr/local/tomcat/webapps/launchstation04.war -U jenkinsuser:Learning@% http://localhost:8082/artifactory/demoArtifactory/com/demo/0.0.1-SNAPSHOT/demo-0.0.1-20200823.053346-18.war
我的命令没有问题。Jfrog人工制品无法授权此操作。因此我添加了用户名和密码详细信息,但仍然无法正常工作。
错误:
wget:服务器返回错误:HTTP / 1.1 401未经授权
将密码策略修改为不受支持后,它无法正常工作。但是,当我允许匿名访问时,它可以正常工作。 如何使用凭据提供访问权限。
解决方法
需要进一步澄清您的问题。不知道在哪里使用curl命令。 图像tomcat:alpine不包含curl命令。除非您手动安装。
bash-4.4# type curl
bash: type: curl: not found
bash-4.4#
如果您要询问的是sh -c选项,则通过CMD选项调用脚本,是的,它将使用sh。相反,您可以尝试使用ENTRYPOINT。
,您可以通过命令行提供用户名和密码:
wget --user user --password pass
使用curl
:
curl -u username:password -O
但使用特殊字符无效:
在[a-z][A-Z][0-9]
尝试使用API密钥而不是密码,我感觉“ @”可能会让您失望。引号也可以提供帮助,或者使用-p
还要查看请求日志,以了解用户输入的条目是401,还是匿名/未经身份验证的
最后,请查看是否可以从图像外部进行cURL处理,然后再将文件添加到其中,因为这样可以消除主机上可能存在的所有外部因素(我认为该命令可以正常工作)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。