Use latest curl version on docker

Viewed 3550

I've the following docker image

FROM debian:10.7

RUN apt-get update && \
    apt-get install --yes --no-install-recommends curl

when I run it and use curl --version I got version 7.64 but the latest is 7.74 https://curl.haxx.se/download.html

How should I upgrade the curl to the latest version 7.74 ?
is there a way to do it?

3 Answers

You can use the downloaded packages directly to solve this problem by installing with the make command.

FROM debian:10.7

RUN apt-get update && \
    apt-get install --yes --no-install-recommends wget build-essential libcurl4 && \
    wget https://curl.se/download/curl-7.74.0.tar.gz && \
    tar -xvf curl-7.74.0.tar.gz && cd curl-7.74.0 && \
    ./configure && make && make install

Note that it requires running ./configure.

After installation curl will work perfectly in the version you need, in this case, version 7.74.0.

If you want to optimize your container, remove the build-essential package, it alone will consume more than 200MB of storage. To do this, add at the end of the compilation:

apt-get autoremove build-essential

You could clone curl source code from Git and build and install it manually in your Dockerfile like that:

FROM debian:10.7

RUN apt-get update && \
    apt-get install --yes --no-install-recommends autoconf libtool automake make git

RUN GIT_SSL_NO_VERIFY=1 git clone https://github.com/curl/curl --depth 1
RUN cd curl && ./buildconf && ./configure && make -j$(nproc) install && \
    echo /usr/local/lib >> /etc/ld.so.conf.d/local.conf && ldconfig

After docker run:

root@d7ea28ad22e2:/# curl --version
curl 7.75.0-DEV (x86_64-pc-linux-gnu) libcurl/7.75.0-DEV
Release-Date: [unreleased]
Protocols: dict file ftp gopher http imap mqtt pop3 rtsp smtp telnet tftp
Features: alt-svc AsynchDNS IPv6 Largefile UnixSockets
Related