Apache Maven Загрузка с использованием CURL истекла - PullRequest
0 голосов
/ 19 февраля 2020
curl -O "https://www.apache.org/dist/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz"

Это команда, которую я использую с терминала для загрузки maven, но она либо истекла, либо curl: (7) Failed to connect to www.apache.org port 443: Operation timed out.

Если я использую браузер для загрузки, никаких проблем.

My Предположение - проблема с соединением или сертификатом. Любая идея, как я могу решить проблему с curl.

Пожалуйста, обратите внимание, я использую это в Dockerfile для создания docker изображения и вот что:

FROM ******/mule-42x:v2.2.1

ENV MAVEN_VERSION 3.6.3

RUN mkdir -p /opt/maven \
  && cd /opt/maven \
  && curl -O "https://www.apache.org/dist/maven/maven-3/${MAVEN_VERSION}/binaries/apache-maven-${MAVEN_VERSION}-bin.tar.gz" \
  && tar xzvf "apache-maven-$MAVEN_VERSION-bin.tar.gz" \
  && rm "apache-maven-$MAVEN_VERSION-bin.tar.gz"

ENV MAVEN_HOME "/opt/maven/apache-maven-$MAVEN_VERSION"

ENV PATH=$MAVEN_HOME/bin:$PATH

1 Ответ

0 голосов
/ 19 февраля 2020

Я попытался выполнить команду, представленную в вопросе, и обнаружил следующие ошибки:

curl -O "https://www.apache.org/dist/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz"
  1. 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 файле.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...