Не удается увидеть веб-приложение плагина Java Maven Tomcat в веб-браузере
Я хочу собрать и запустить свое веб-приложение на Java Maven в Docker-контейнере. Я попытался с помощью следующей команды:
docker run -it --name my_project -v "$PWD":/usr/src/my_project -w /usr/src/my_project maven:3.5.0-jdk-8 mvn clean install tomcat7:run
Он правильно копирует ресурсы, запускает maven clean install (успешная сборка) и запускается с помощью tomcat7-maven-plugin, который включен в мой pom.xml.
Все работает отлично, и журналы действительно похожи на сборку и запуск локально на моей машине с Windows:
К сожалению, в веб-браузере есть информация "Отказ в соединении".
Что может вызвать проблему?: - мое приложение ориентировано на Windows и не может работать в Linux? - приложение полностью работает и работает, но что-то не так с настройкой прокси или порт не настроен?
Как я могу продолжить - исследовать журналы? Попробуйте построить на Windows Docker контейнер?
PS Я проверяю IP контейнера с приложением Kitematic для Windows Docker.
1 ответ
Возможно три вопроса. После того, как вы использовали -w
вместо -v
docker run -it --name my_project -v "$PWD":/usr/src/my_project -w /usr/src/my_project maven:3.5.0-jdk-8 mvn clean install tomcat7:run
Во время публикации я предположил, что это опечатка. Далее вы не опубликовали порт на своей машине
docker run -p 9998:9998 -it --name my_project -v "$PWD":/usr/src/my_project -w /usr/src/my_project maven:3.5.0-jdk-8 mvn clean install tomcat7:run
Это будет карта порта 9998
(справа) от вашего контейнера до порта 9998
на вашем местном хосте.
Третий и последний, ваш журнал INFO говорит о прослушивании localhost:9998
, Это не хорошо. Потому что это означает, что ваша война зависит от трафика, генерируемого только внутри контейнера, а не снаружи контейнера. Вам нужно настроить свою войну так, чтобы она слушала все интерфейсы внутри контейнера, и bind должен быть 0.0.0.0:9998