1# 2# This Dockerfile builds a recent curl with HTTP/2 client support, using 3# a recent nghttp2 build. 4# 5# See the Makefile for how to tag it. If Docker and that image is found, the 6# Go tests use this curl binary for integration tests. 7# 8 9FROM ubuntu:trusty 10 11RUN apt-get update && \ 12 apt-get upgrade -y && \ 13 apt-get install -y git-core build-essential wget 14 15RUN apt-get install -y --no-install-recommends \ 16 autotools-dev libtool pkg-config zlib1g-dev \ 17 libcunit1-dev libssl-dev libxml2-dev libevent-dev \ 18 automake autoconf 19 20# The list of packages nghttp2 recommends for h2load: 21RUN apt-get install -y --no-install-recommends make binutils \ 22 autoconf automake autotools-dev \ 23 libtool pkg-config zlib1g-dev libcunit1-dev libssl-dev libxml2-dev \ 24 libev-dev libevent-dev libjansson-dev libjemalloc-dev \ 25 cython python3.4-dev python-setuptools 26 27# Note: setting NGHTTP2_VER before the git clone, so an old git clone isn't cached: 28ENV NGHTTP2_VER 895da9a 29RUN cd /root && git clone https://github.com/tatsuhiro-t/nghttp2.git 30 31WORKDIR /root/nghttp2 32RUN git reset --hard $NGHTTP2_VER 33RUN autoreconf -i 34RUN automake 35RUN autoconf 36RUN ./configure 37RUN make 38RUN make install 39 40WORKDIR /root 41RUN wget http://curl.haxx.se/download/curl-7.45.0.tar.gz 42RUN tar -zxvf curl-7.45.0.tar.gz 43WORKDIR /root/curl-7.45.0 44RUN ./configure --with-ssl --with-nghttp2=/usr/local 45RUN make 46RUN make install 47RUN ldconfig 48 49CMD ["-h"] 50ENTRYPOINT ["/usr/local/bin/curl"] 51 52