В Docker Container не запускается папка warfile в веб-приложениях после запуска Tomcat
Когда мы запускаем tomcat, то в webapps создается папка с файлом war, как если бы у нас был файл name.war, то папка name создается в webapps после запуска tomcat.
но когда мы развертываем файл war с помощью docker, используя dockerfile, то в контейнере docker у нас есть папка tomcat, а в веб-приложениях у нас есть файл war, и после запуска dockerfile запускается приложение tomcat get start, но в папке webapp приложения папка war-файла не создается. как у меня есть name.war в веб-приложениях в Docker-контейнере, но после запуска tomcat папка с именами в веб-приложениях отсутствовала.
поэтому, если нам нужно сделать небольшие изменения в jsp в файле war, то нам нужно выполнить полное развертывание файла war, например, остановить сборку контейнера, dockerfile, запустить dockerfile и т. д. Так что, если у нас есть эта папка warfile в веб-приложениях, мы можем изменить jsp или js без труда. так как мы можем получить папку warfile после запуска tomcat в контейнере Docker.
Чтобы построить Dockerfile:
docker build -t tomcat .
кот это имя изображения
Чтобы запустить Dockerfile:
docker run -p 8080:8080 tomcat
Мой Dockerfile это:
FROM openjdk:7-jre
MAINTAINER shri
ENV CATALINA_HOME /usr/local/tomcat
ENV PATH $CATALINA_HOME/bin:$PATH
COPY tomcat $CATALINA_HOME
ADD newui.war $CATALINA_HOME/webapps
CMD $CATALINA_HOME/bin/startup.sh && tail -F $CATALINA_HOME/logs/catalina.out
EXPOSE 8080
1 ответ
Вы можете предоставить войну от хоста к контейнеру, смонтировав папку, содержащую войну на хосте.
docker run -v /.../tomcat:/usr/local/tomcat -p 8080:8080 --name tomcat tomcat
куда /.../tomcat
путь к еще не существующей папке Tomcat. Теперь, когда у вас есть новый файл войны, скопируйте его в /.../tomcat
каталог и просто перезапустите контейнер.
docker restart tomcat
Обратите внимание, что нет необходимости перестраивать контейнер.