diff --git a/curl/Dockerfile b/curl/Dockerfile index 074bc05..6534b52 100644 --- a/curl/Dockerfile +++ b/curl/Dockerfile @@ -1,12 +1,47 @@ -# curl in a container # -# docker run --rm -it \ -# jess/curl -sSL https://check.torproject.org/api/ip +# This Dockerfile builds a recent curl with HTTP/2 client support, using +# a recent nghttp2 build. +# +# See the Makefile for how to tag it. If Docker and that image is found, the +# Go tests use this curl binary for integration tests. # -FROM alpine:latest -MAINTAINER Jessica Frazelle -RUN apk --no-cache add \ - curl +FROM alpine:edge -CMD [ "curl" ] +RUN apk add --no-cache \ + ca-certificates \ + nghttp2 \ + openssl + +ENV CURL_VERSION 7.50.1 + +RUN set -x \ + && apk add --no-cache --virtual .build-deps \ + g++ \ + make \ + nghttp2-dev \ + openssl-dev \ + perl \ + && wget https://curl.haxx.se/download/curl-$CURL_VERSION.tar.bz2 \ + && tar xjvf curl-$CURL_VERSION.tar.bz2 \ + && rm curl-$CURL_VERSION.tar.bz2 \ + && ( \ + cd curl-$CURL_VERSION \ + && ./configure \ + --with-nghttp2=/usr \ + --with-ssl \ + --enable-ipv6 \ + --enable-unix-sockets \ + --without-libidn \ + --disable-static \ + --disable-ldap \ + --with-pic \ + && make \ + && make install \ + ) \ + && rm -r curl-$CURL_VERSION \ + && rm -r /usr/share/man \ + && apk del .build-deps + +ENTRYPOINT ["/usr/local/bin/curl"] +CMD ["-h"]