在Docker容器中运行Maven Web应用程序

我试图用Maven构build一个简单的Web应用程序,并在Docker容器内运行Tomcat7。

这是我的结构:

- Dockerfile - pom.xml - src/main/webapp/index.hmtl 

这是我的Dockerfile:

 FROM java:8 # Install maven RUN apt-get -y update && apt-get install -y maven WORKDIR /code # Prepare by downloading dependencies ADD pom.xml /code/pom.xml # Adding source, compile and package into a fat jar ADD src /code/src RUN ["mvn", "package"] EXPOSE 8080 CMD ["mvn", "tomcat7:run"] 

我正在构buildDocker镜像

 docker build -t webapp-example . 

并尝试运行它

 docker run -d -p 8080:8080 webapp-example 

但显然这是行不通的。

有任何想法吗?

既然你共享运行使用tty和交互式标志如下解决你的问题,

docker run -ti --rm -p 8080:8080 webapp-example

这是因为您的基本映像是java:8 ,主要是为了在前面模式下运行应用程序(使用-ti标志)或仅在-d模式下编译而创build的。

另外,由于maven是构build工具,不应该用来运行应用程序,

  1. 使用maven创build你的webapp:最新的图像。
  2. 使用官方的tomcat镜像作为tomcat容器单独部署。