我在Azure中使用WebApp for Container,目前我在Jenkins中构建自己的容器并将其推送到我自己的私有注册表。
我自己的私有注册表是非常基本的,没有WebHook的功能,所以我想在我的Jenkins工作流程中添加以触发容器刷新。
我已按照以下步骤操作:https://docs.microsoft.com/en-us/azure/app-service/containers/app-service-linux-ci-cd我获得了网址,但当我尝试卷曲时,我得到了:
401 - 未经授权:由于凭据无效,访问被拒绝。如果我执行GET请求,请执行以下操作:
curl https:// $ user:password@mysite.scm.azurewebsites.net/docker/hook
和
HTTP错误411.请求必须分块或具有内容长度。如果我发出POST请求
curl -X POST curl https:// $ user:password@mysite.scm.azurewebsites.net/docker/hook
我应该如何使用Curl来触发此请求?
谢谢,
答案 0 :(得分:2)
解决方案:
简单如下:
curl -X POST'curl https:// $ user:password@mysite.scm.azurewebsites.net/docker/hook'-H''-d''
答案 1 :(得分:0)
不要忘记在用户名开头转义美元符号。
所以,例如:
curl https://\$user:password@mysite.scm.azurewebsites.net/docker/hook'
答案 2 :(得分:0)
首先
curl -X POST curl https://$user:password@mysite.scm.azurewebsites.net/docker/hook
第一个错误在$user
上。当您以$
开头的单词时,终端会认为这是一个环境变量。因此,对于您的终端考虑者来说,它是一个字符串,您必须在\
之前放置一个$
。
现在我们有了
curl -X POST curl https://\$user:password@mysite.scm.azurewebsites.net/docker/hook
第二个错误是因为此URL中包含一些特殊字符。因此,您必须在引号之间加上
。现在,我们有这个
curl -X POST curl "https://\$user:password@mysite.scm.azurewebsites.net/docker/hook"
完成后,我们必须在命令末尾添加参数-H
和-d
。
现在命令
curl -X POST curl "https://\$user:password@mysite.scm.azurewebsites.net/docker/hook" -d -H
应该工作。