blob: 53fc52579744539dc9d223be13fe7be565396bf2 [file] [log] [blame]
Prince Pereirac1c21d62021-04-22 08:38:15 +00001#
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