【发布时间】:2017-12-12 17:07:36
【问题描述】:
我已经通过这个Dockerfile dockerified httpie:
FROM alpine:3.6
MAINTAINER Philipp Kretzschmar <philipp.kretzschmar@gmail.com>
ENV LAST_UPDATED=2017-06-01
ARG XDG_CACHE_HOME=/tmp/cache/
RUN apk update && \
apk add py-pip && pip install httpie && \
rm -rf /var/cache/apk/*
CMD ["--help"]
ENTRYPOINT ["/usr/bin/http"]
也可以直接拉取图片:
docker pull k0pernikus/httpie-docker-alpine:1.0.0
使用 httpie 作为独立程序,我知道建议通过 echo(简化示例)在嵌套的 json 有效负载中管道:
$ echo '{"property":"value"}' | http PUT https://jsonplaceholder.typicode.com -vvv
并且通过详细的输出标志-vvv httpie 表明payload确实是在请求中发送的:
PUT /posts HTTP/1.1
Accept: application/json, */*
Accept-Encoding: gzip, deflate
Connection: keep-alive
Content-Length: 21
Content-Type: application/json
Host: jsonplaceholder.typicode.com
User-Agent: HTTPie/0.9.9
{
"property": "value"
}
(jsonplaceholder URL 会返回 404,这很好。这个问题的范围只是关于发送正确的请求。)
现在想来就相当于通过docker via执行命令了:
$ echo '{"property":"value"}' | docker run k0pernikus/httpie-docker-alpine:1.0.0 PUT https://jsonplaceholder.typicode.com -vvv
但是详细标志报告请求是在没有负载的情况下发送的:
PUT / HTTP/1.1
Content-Length: 0
Accept-Encoding: gzip, deflate
Host: jsonplaceholder.typicode.com
Accept: */*
User-Agent: HTTPie/0.9.9
Connection: keep-alive
如何将数据通过管道传输到docker run 命令?
【问题讨论】: