【问题标题】:docker exec curl post码头工人执行卷曲帖子
【发布时间】:2020-08-08 12:58:22
【问题描述】:

我想在 docker 镜像中运行 curl。它在 docker 容器中工作,如下所示:

curl -i -X POST -H 'Content-Type: application/json' -d '{"configuredLevel":"INFO"}'  localhost:8091/mobile-svc/actuator/loggers/something

当我想从 docker 容器中的 bash 脚本运行它时:

args="sh -c \"curl -i -X POST -H 'Content-Type: application/json' -d'{\"configuredLevel\":\"${LEVEL}\"}' localhost:${PORT}/mobile-svc/actuator/loggers/${PACKAGE}\""
echo $args
cmd="docker exec -it $CID $args"
eval $cmd

它说:

sh -c "curl -i -X POST -H 'Content-Type: application/json' -d '{"configuredLevel":"DEBUG"}' 
localhost:8091/tcp/mobile-svc/actuator/loggers/something
HTTP/1.1 404 
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json;charset=UTF-8
Transfer-Encoding: chunked
Date: Sat, 08 Aug 2020 12:49:58 GMT
{"timestamp":"2020-08-08T12:49:58.949+0000","status":404,"error":"Not Found","message":"No message available","path":"/tcp/mobile-svc/actuator/loggers/something"}

如何将复合参数传递给 curl?

谢谢 扎梅克

【问题讨论】:

  • 一般来说,您不需要编写docker exec 调用的脚本。这对于进行网络调用的东西来说是双重的:从连接到容器的已发布端口的主机运行curl
  • 很遗憾没有。
  • 声明 curl_args() curl_args=("curl" "-i" "-X" "POST" "-H" "Content-Type: application/json" "-d" "{\"已配置级别\":\"${LEVEL}\"}" "localhost:${PORT}/mobile-svc/actuator/loggers/${PACKAGE}") 声明 cmd=("exec" "-it" "$CID " "sh" "-c" "\"${curl_args[@]}\"") echo $cmd eval $(docker ${cmd[@]}) 看起来不错,但是 eval 结果是: curl: try ' curl --help' 或 'curl --manual' 了解更多信息
  • 您的 ${PORT} 变量似乎解析为 8091/tcp,这会弄乱您的查询字符串。我想你应该使用一个解析为8091 的变量来让它工作。

标签: bash docker curl


【解决方案1】:

终于找到了解决办法,但是有点难看:

cmd="docker exec -it $CID sh -c \"curl -i -X POST -H 'Content-Type: application/json' -d '{\\\"configuredLevel\\\":\\\"$LEVEL\\\"}' localhost:${PORT}/mobile-svc/actuator/loggers/something\""

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-20
    • 2022-08-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多