| # | |
| # 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 ubuntu:trusty | |
| RUN apt-get update && \ | |
| apt-get upgrade -y && \ | |
| apt-get install -y git-core build-essential wget | |
| RUN apt-get install -y --no-install-recommends \ | |
| autotools-dev libtool pkg-config zlib1g-dev \ | |
| libcunit1-dev libssl-dev libxml2-dev libevent-dev \ | |
| automake autoconf | |
| # The list of packages nghttp2 recommends for h2load: | |
| RUN apt-get install -y --no-install-recommends make binutils \ | |
| autoconf automake autotools-dev \ | |
| libtool pkg-config zlib1g-dev libcunit1-dev libssl-dev libxml2-dev \ | |
| libev-dev libevent-dev libjansson-dev libjemalloc-dev \ | |
| cython python3.4-dev python-setuptools | |
| # Note: setting NGHTTP2_VER before the git clone, so an old git clone isn't cached: | |
| ENV NGHTTP2_VER 895da9a | |
| RUN cd /root && git clone https://github.com/tatsuhiro-t/nghttp2.git | |
| WORKDIR /root/nghttp2 | |
| RUN git reset --hard $NGHTTP2_VER | |
| RUN autoreconf -i | |
| RUN automake | |
| RUN autoconf | |
| RUN ./configure | |
| RUN make | |
| RUN make install | |
| WORKDIR /root | |
| RUN wget http://curl.haxx.se/download/curl-7.45.0.tar.gz | |
| RUN tar -zxvf curl-7.45.0.tar.gz | |
| WORKDIR /root/curl-7.45.0 | |
| RUN ./configure --with-ssl --with-nghttp2=/usr/local | |
| RUN make | |
| RUN make install | |
| RUN ldconfig | |
| CMD ["-h"] | |
| ENTRYPOINT ["/usr/local/bin/curl"] | |