#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