How to use httpid and jq within docker?
I want to get the ip only in json result like '34.10.12.40'
docker run -it --rm blacktop/httpie -b ifconfig.co/json
{
"country": "United States",
"country_eu": false,
"country_iso": "US",
"hostname": "lqwtx.com",
"ip": "34.10.12.40",
"ip_decimal": 39585,
"latitude": 35,
"longitude": 105
}
but I've tried some ways but does not work, like blow.
docker run -it --rm blacktop/httpie ash -c "http -b ifconfig.co/json | jq '.ip’”
docker run -it --rm blacktop/httpie -b ifconfig.co/json jq '.ip'
This is the dockerfile of the image you used, see this:
FROM alpine:latest
RUN apk add --no-cache jq httpie
ENTRYPOINT [ "http" ]
CMD [ "--help" ]
From above, you can see it set an entrypoint
with http
for this image, so all your command used in docker run
will be act as parameters for http
, so of course you will fail.
Next is a method for you to make use of it:
docker run -it --rm --entrypoint=/bin/sh blacktop/httpie -c "http -b ifconfig.co/json | jq '.ip'"
Sample output:
"92.121.64.197"
Above command will override the default entrypoint
with /bin/sh
, then you can use jq
to parse output of httpie
in pipeline.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With