2018-05-01 23:45:06 +00:00
|
|
|
#
|
|
|
|
# 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
|
2021-08-27 11:26:00 +00:00
|
|
|
RUN wget https://curl.se/download/curl-7.45.0.tar.gz
|
2018-05-01 23:45:06 +00:00
|
|
|
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"]
|
|
|
|
|