Как использовать httpie и jq в Docker? - PullRequest
0 голосов
/ 05 июня 2019

Как использовать httpid и jq в Docker?

Я хочу получить IP только в формате json, например '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
}

но я пробовал несколько способов, но не работает, как удар.

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'

1 Ответ

1 голос
/ 05 июня 2019

Это докер-файл изображения, которое вы использовали, см. this :

FROM alpine:latest

RUN apk add --no-cache jq httpie

ENTRYPOINT [ "http" ]
CMD [ "--help" ]

Сверху вы можете видеть, что для этого изображения установлено entrypoint с httpпоэтому вся ваша команда, используемая в docker run, будет действовать как параметры для http, поэтому, конечно, у вас ничего не получится.

Следующий метод, которым вы можете воспользоваться:

docker run -it --rm --entrypoint=/bin/sh blacktop/httpie -c "http -b ifconfig.co/json | jq '.ip'"

Пример вывода:

"92.121.64.197"

Указанная выше команда переопределит значение по умолчанию entrypoint на /bin/sh, затем вы можете использовать jq для анализа вывода httpie в конвейере.

...