¿Cómo usar httpid y jq dentro de docker?
Quiero obtener la ip solo en el resultado json como '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 }pero lo he probado de algunas formas pero no funciona, como golpe.
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'Este es el dockerfile de la imagen que usaste, mira esto :
FROM alpine:latest RUN apk add --no-cache jq httpie ENTRYPOINT [ "http" ] CMD [ "--help" ] Desde arriba, puede ver que establece un punto de entrypoint con http para esta imagen, por lo que todos los comandos utilizados en la docker run actuarán como parámetros para http , por lo que, por supuesto, fallará.
El siguiente es un método para que puedas usarlo:
docker run -it --rm --entrypoint=/bin/sh blacktop/httpie -c "http -b ifconfig.co/json | jq '.ip'"Salida de muestra:
"92.121.64.197" El comando anterior anulará el punto de entrada predeterminado con /bin/sh , luego puede usar jq para analizar la salida de entrypoint en httpie canalización.