Я попытался выполнить команду, представленную в вопросе, и обнаружил следующие ошибки:
curl -O "https://www.apache.org/dist/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz"
- curl пытается проверить сертификат SSL, но не может выполнить следующее сообщение:
curl: (60) server certificate verification failed. CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none
More details here: http://curl.haxx.se/docs/sslcerts.html
curl performs SSL certificate verification by default, using a "bundle"
of Certificate Authority (CA) public keys (CA certs). If the default
bundle file isn't adequate, you can specify an alternate file
using the --cacert option.
If this HTTPS server uses a certificate signed by a CA represented in
the bundle, the certificate verification probably failed due to a
problem with the certificate (it might be expired, or the name might
not match the domain name in the URL).
If you'd like to turn off curl's verification of the certificate, use
the -k (or --insecure) option.
Итак, я добавил флаг -k
, как следует из сообщения.
Теперь это работает, однако вызов http возвращается и HTML страница с 302 (перенаправление) на
https://downloads.apache.org/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz
Итак, команда, которая работала для меня:
curl -O -k https://downloads.apache.org/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz
Важное примечание:
Я предполагаю, что вы правильно настроили сеть и у нее есть все правильные определения прокси, если вы работаете за прокси в вашей организации, в противном случае вы должны сначала определить прокси.
В общем, я предлагаю вам сначала запустить эту команду «вручную» (из командной строки, а не как часть сборки, которую я имею в виду) за пределами docker в машина, на которой вы запускаете docker build
, и только когда вы убедитесь, что она работает, запускайте ее в docker файле.