Dockerfile 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  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. FROM ubuntu:trusty
  9. RUN apt-get update && \
  10. apt-get upgrade -y && \
  11. apt-get install -y git-core build-essential wget
  12. RUN apt-get install -y --no-install-recommends \
  13. autotools-dev libtool pkg-config zlib1g-dev \
  14. libcunit1-dev libssl-dev libxml2-dev libevent-dev \
  15. automake autoconf
  16. # The list of packages nghttp2 recommends for h2load:
  17. RUN apt-get install -y --no-install-recommends make binutils \
  18. autoconf automake autotools-dev \
  19. libtool pkg-config zlib1g-dev libcunit1-dev libssl-dev libxml2-dev \
  20. libev-dev libevent-dev libjansson-dev libjemalloc-dev \
  21. cython python3.4-dev python-setuptools
  22. # Note: setting NGHTTP2_VER before the git clone, so an old git clone isn't cached:
  23. ENV NGHTTP2_VER 895da9a
  24. RUN cd /root && git clone https://github.com/tatsuhiro-t/nghttp2.git
  25. WORKDIR /root/nghttp2
  26. RUN git reset --hard $NGHTTP2_VER
  27. RUN autoreconf -i
  28. RUN automake
  29. RUN autoconf
  30. RUN ./configure
  31. RUN make
  32. RUN make install
  33. WORKDIR /root
  34. RUN wget http://curl.haxx.se/download/curl-7.45.0.tar.gz
  35. RUN tar -zxvf curl-7.45.0.tar.gz
  36. WORKDIR /root/curl-7.45.0
  37. RUN ./configure --with-ssl --with-nghttp2=/usr/local
  38. RUN make
  39. RUN make install
  40. RUN ldconfig
  41. CMD ["-h"]
  42. ENTRYPOINT ["/usr/local/bin/curl"]