skip to Main Content

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


  1. 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
    
    Login or Signup to reply.
  2. The latest version of Curl on Alpine Linux is available from the following link:

    https://github.com/curl/curl-docker/blob/master/alpine/latest/Dockerfile

    Login or Signup to reply.
  3. 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
    
    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search