RUN curl не работает в dockerfile, но работает из командной строки - PullRequest
0 голосов
/ 24 мая 2018

Использование Ubuntu 16.04 и докера 18.03.1-ce

В Dockerfile у меня есть:

RUN curl -k -o app.jar -kfSL https://mynexus:9006/repository/legacy/1.0.2/app.jar

Но когда я собираю это с:

sudo docker build -t myimage .

Я получаю:

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0curl: (6) Could not resolve host: mynexus
The command '/bin/sh -c curl -k -o app.jar -kfSL https://mynexus:9006/repository/legacy/1.0.2/app.jar' returned a non-zero code: 6

Если я запускаю точно такую ​​же командную строку из терминала, она работает нормально:

$ curl -k -o app.jar -kfSL https://mynexus:9006/repository/legacy/1.0.2/app.jar
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 3613k  100 3613k    0     0  1413k      0  0:00:02  0:00:02 --:--:-- 1413k

Почему я могу свернуть этот файл из командной строки, но не из DockerFile

1 Ответ

0 голосов
/ 24 мая 2018

Вы можете увидеть сообщение об ошибке curl при запуске последнего зафиксированного образа из сборки с помощью команды curl:

docker run -it --rm lastCommitedImageHash curl -k -o app.jar -kfSL https://mynexus:9006/repository/legacy/1.0.2/app.jar

У меня была такая же проблема на прошлой неделе - curl работал напрямую с хоста, но не при запуске во времяпостроить из Dockerfile.

Мне помог перезапуск демона Docker.

Я не нашел причину этого состояния.Он был на компьютере, который также является мастером Kubernetes, и я провел обновление кластера Kubernetes на прошлой неделе, и, вероятно, это было источником этой проблемы.

Другая причина этой проблемы в вашем случае может быть, если у вас есть mynexus имя хоста, определенное только в файле / etc / hosts на хост-компьютере, и затем неизвестно для работающего контейнера во время сборки.

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