Я хочу опубликовать артефакт от Jenkins на моем компьютере в нексусе на моем локальном компьютере. В будущем у этих двоих будут выделенные серверы, но в настоящее время в целях тестирования я хочу попробовать именно так.
Jenkins и Nexus находятся в отдельных контейнерах.
Я могу опубликовать в nexus со своего компьютера, запустив mvn clean deploy
из корневого каталога проекта.
Я не могу этого сделать с помощью Jenkins.
Когда я вхожу в контейнер с Jenkins, используя: docker exec -it jenkins-container bash
и выполняю curl http://localhost:8081
, я получаю сообщение
curl: (7) Failed to connect to localhost port 8081: Connection refused
Насколько я понимаю, мне нужно указать URL, отличный от localhost
, но какой? Как мне его найти? Как это настроить?
Ваши два контейнера докеров должны находиться в одной сети. После этого вы можете общаться друг с другом через их имя, которое станет хостом:
пример: curl http: // {docker_container_name}: 8081
См. Документацию по реализации сети в докере:
https://docs.docker.com/network/
Если у вас есть ошибка 400, это означает, что ваши два контейнера теперь могут хорошо взаимодействовать друг с другом. Теперь это другая проблема, мне не хватает информации, чтобы на нее ответить
Я сменил его с http://{docker_container_name}:8081
на http://{docker_network_container_ip}:8081
, и все заработало :) Спасибо! Не могли бы вы обновить свой ответ? Для получения IP контейнеров используйте docker network inspect name-of-net
Я добавил в свою сеть два контейнера, и теперь при запуске
curl http://{docker_container_name}:8081
сообщений нет. Что-то изменилось. Я все еще не мог опубликовать. На этот раз с результатомReturn code is: 400 , ReasonPhrase:Bad Request.
. Будем смотреть дальше.