Не удается запустить webapplication на tomcat с помощью Docker

#file #tomcat #web-applications #docker #war

#file #tomcat #веб-приложения #docker #Война

Вопрос:

Я пытаюсь показать в своем браузере веб-приложение, которое я создал для школьного проекта. Прежде всего, я поместил свой Dockerfile и мой файл .war в одну папку /home/giorgio/Documenti/dockerProject . Я написал в своем Dockerfile следующее:

 # Pull base image
From tomcat:7-jre7

# Maintainer
MAINTAINER "xyz <xyz@email.com">

# Copy to images tomcat path
RUN rm -rf /usr/local/tomcat/webapps/ROOT
COPY file.war /home/giorgio/Documenti/apache-tomcat-7.0.72/webapps/
 

Затем я создал образ с помощью команды из оболочки ubuntu:

 docker build -t myName /home/giorgio/Documenti/dockerProjects
 

Наконец, я запустил оболочку:

 docker run --rm -it -p 8080:8080 myName
 

Теперь все работает нормально и не показывает никаких ошибок, однако, когда я хочу получить доступ localhost:8080 из своего браузера, что-нибудь появляется, тем не менее tomcat начал работать отлично.

Есть мысли о возможной проблеме, которую я не вижу? Спасибо!

Комментарии:

1. Вы упомянули военный файл, но вы копируете hello.py файл в контейнер. Вы хотите развернуть военный файл?

2. docker logs myName покажет вам вывод контейнера, возможно, там выводится ошибка

3. да, hello.py это была просто проверка. Я отредактировал вопрос. @STLMikey Я попробую сейчас, а затем опубликую здесь результат.

Ответ №1:

Это весь ваш файл Dockerfile?

Потому что вы просто удаляете все корневое содержимое (шаг # 3)

затем скопируйте файл war с вашим приложением (шаг № 4) — возможно, только неправильная папка в вопросе (должна быть /usr/local/tomcat/webapps/)

Но я не вижу никакой конечной точки или запуска приложения переднего плана.

Я полагаю, вам нужно добавить:

 CMD ["/usr/local/tomcat/bin/catalina.sh", "run"]
 

и с этим просто запустите tomcat. И это процедуры для EXPOSE переноса, но когда вы используете -p docker, он выполняет неявное раскрытие.

Итак, ваш Dockerfile должен выглядеть так:

 # Pull base image
From tomcat:7-jre7

# Maintainer
MAINTAINER "xyz <xyz@email.com">

# Copy to images tomcat
RUN rm -rf /usr/local/tomcat/webapps/ROOT

# fixed path for copying
COPY file.war /usr/local/tomcat/webapps/

# Routine for me - optional for your case
EXPOSE 8080

# And run tomcat
CMD ["/usr/local/tomcat/bin/catalina.sh", "run"]
 

Комментарии:

1. Спасибо вам за ваш ответ! Однако, похоже, ничего не изменилось. та же пустая страница в localhost:8080

2. это пустая страница или страница не найдена? есть ли у вас какой-либо контекст в вашем приложении war? если да, вам нужно использовать localhost:8080 /context

3. Вы можете проверить: localhost:8080/file — имя файла должно быть контекстным. или уродливое решение для целей тестирования COPY file.war /usr/local/tomcat/webapps/ROOT.war и проверки localhost: 8080