Home | History | Annotate | Download | only in http2
      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 
      9 FROM ubuntu:trusty
     10 
     11 RUN apt-get update && \
     12     apt-get upgrade -y && \
     13     apt-get install -y git-core build-essential wget
     14 
     15 RUN 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:
     21 RUN 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:
     28 ENV NGHTTP2_VER 895da9a
     29 RUN cd /root && git clone https://github.com/tatsuhiro-t/nghttp2.git
     30 
     31 WORKDIR /root/nghttp2
     32 RUN git reset --hard $NGHTTP2_VER
     33 RUN autoreconf -i
     34 RUN automake
     35 RUN autoconf
     36 RUN ./configure
     37 RUN make
     38 RUN make install
     39 
     40 WORKDIR /root
     41 RUN wget http://curl.haxx.se/download/curl-7.45.0.tar.gz
     42 RUN tar -zxvf curl-7.45.0.tar.gz
     43 WORKDIR /root/curl-7.45.0
     44 RUN ./configure --with-ssl --with-nghttp2=/usr/local
     45 RUN make
     46 RUN make install
     47 RUN ldconfig
     48 
     49 CMD ["-h"]
     50 ENTRYPOINT ["/usr/local/bin/curl"]
     51 
     52