在docker容器中运行maven webapp

时间:2017-02-16 15:31:39

标签: maven docker tomcat7

我正在尝试使用Maven构建一个简单的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"]

我用

构建Docker镜像
docker build -t webapp-example .

并尝试使用

运行它
docker run -d -p 8080:8080 webapp-example

但显然它不起作用。

有什么想法吗?

1 个答案:

答案 0 :(得分:4)

由于您使用tty和交互式标志共享运行,如下所示可以解决您的问题,

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

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

此外,由于maven是构建工具,不应该用于运行应用程序,你应该

  1. 使用maven:最新图片创建webapp。
  2. 使用官方tomcat image将其作为tomcat容器单独部署。