Pentru a lucra la un proiect vechi vechi, încerc să configurez o bază de imagini docker pe ubuntu 20.04 folosind o versiune veche de curl 7.27.0
.
Așa că instalez curl din surse
ENV CURL_VERSION 7.27.0
RUN cd /tmp && \
wget „https://curl.se/download/curl-$CURL_VERSION.tar.gz” -O curl.tgz && \
tar -xvzf curl.tgz && \
cd curl-$CURL_VERSION && \
./configure --with-Secure-Transport --enable-libcurl-option && \
make && make install
Instalarea reușește și puteți vedea că versiunea curl este următoarea
curl 7.27.0 (x86_64-unknown-linux-gnu) libcurl/7.68.0 OpenSSL/1.1.1f zlib/1.2.11 brotli/1.0.7 libidn2/2.2.0 libpsl/0.21.0 (+libidn2/2.2.0 ) libssh/0.9.3/openssl/zlib nghttp2/1.40.0 librtmp/2.3
Protocoale: fișier dict ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtmp rtsp scp sftp smb smbs smtp smtps telnet tftp
Caracteristici: AsynchDNS IDN IPv6 Largefile NTLM NTLM_WB SPNEGO SSL libz TLS-SRP
Putem vedea că protocoalele https
se află în lista de protocoale active.
Apoi, alte comenzi rulează pe versiunea docker, de exemplu apt-get update
sau ldconfig
etc..
Apoi, când următorul apel curl este executat după, am primit următoarea eroare:
curl: (1) Protocolul „https” nu este acceptat sau dezactivat în libcurl
Deci, când verific din nou versiunea curl, văd asta:
curl 7.27.0 (x86_64-unknown-linux-gnu) libcurl/7.27.0 zlib/1.2.11
Protocoale: fișier dict ftp gopher http imap ldap pop3 rtsp smtp telnet tftp
Caracteristici: IPv6 Largefile libz
Se pare că unele protocoale au fost dezactivate după rulare actualizare apt
sau ldconfig
și că versiunea libcurl a fost retrogradată la aceeași versiune a curl.
Nu pot să înțeleg de ce se întâmplă asta și ce cauzează asta. Deci întrebarea mea este cum pot preveni dezactivarea unor protocoale? sau libcurl lib să fie retrogradat? De asemenea, vreo explicație despre ce s-a întâmplat?