docker 执行curl 帖子

问题描述 投票:0回答:2

我想在 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?

谢谢 扎梅克

bash docker curl
2个回答
0
投票

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

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\""

0
投票

谢谢您,这帮助解决了我的问题。

cmd="docker exec -it <container> /bin/bash -c \"curl -svu admin:\\\"adminpass\\\" http://<host>:234/service -X PATCH --data '{\\\"metrics\\\": {\\\"enabled\\\":true, \\\"servers\\\": [ {\\\"type\\\":\\\"serv\\\", \\\"protocol\\\":\\\"udp\\\"}, {\\\"type\\\":\\\"stat\\\", \\\"host\\\":\\\"<ip>\\\"}]}}'\"" eval $cmd
© www.soinside.com 2019 - 2024. All rights reserved.