Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Docker add warfile to official Tomcat image

I pulled official Docker image for Tomcat by running this command.

docker run -it --rm tomcat:8.0

By using this as base image I need to build new image that contains my war file in the tomcat webapps folder. I created Dockerfile like this.

From tomcat8
ADD warfile /usr/local/tomcat

When I run this Dockerfile by building image I am not able to see Tomcat front page.

Can anybody tell me how to add my warfile to official Tomcat images webapp folder.

like image 561
user2451997 Avatar asked Jan 07 '15 11:01

user2451997


3 Answers

Reading from the documentation of the repo you would do something like that

FROM tomcat
MAINTAINER xyz

ADD your.war /usr/local/tomcat/webapps/

CMD ["catalina.sh", "run"]

Then build your image with docker build -t yourName <path-to-dockerfile>

And run it with:

docker run --rm -it -p 8080:8080 yourName
  • --rm removes the container as soon as you stop it
  • -p forwards the port to your host (or if you use boot2docker to this IP)
  • -it allows interactive mode, so you see if something get's deployed
like image 139
daniel Avatar answered Oct 21 '22 08:10

daniel


Building on @daniel's answer, if you want to deploy your WAR to the root of tomcat, I did this:

FROM tomcat:7-jre7
MAINTAINER xyz

RUN ["rm", "-fr", "/usr/local/tomcat/webapps/ROOT"]
COPY ./target/your-webapp-1.0-SNAPSHOT.war /usr/local/tomcat/webapps/ROOT.war

CMD ["catalina.sh", "run"]

It deletes the existing root webapp, copies your WAR to the ROOT.war filename then executes tomcat.

like image 37
Tom Saleeba Avatar answered Oct 21 '22 08:10

Tom Saleeba


docker run -it --rm --name MYTOMCAT -p 8080:8080 -v .../wars:/usr/local/tomcat/webapps/ tomcat:8.0

where wars folder contains war to deploy

like image 24
Mohamed EL HABIB Avatar answered Oct 21 '22 07:10

Mohamed EL HABIB