我正在尝试使用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
但显然它不起作用.
有任何想法吗?
最佳答案
由于您使用tty和交互式标志共享运行,如下所示解决了您的问题,
docker run -ti –rm -p 8080:8080 webapp-example
这是因为您的基本映像是java:8,主要用于在前端模式下运行应用程序(使用-ti标志)或仅在-d模式下编译.
此外,由于maven是构建工具,不应该用于运行应用程序,你应该,
>使用maven:最新图像创建webapp.
>使用官方tomcat image将其单独部署为tomcat容器.