运行 docker 容器中的 Maven webapp
Run a maven webapp in a docker container
我正在尝试在 Docker 容器中使用 Maven 和 运行 使用 Tomcat7 构建一个简单的网络应用程序。
这是我的结构:
- Dockerfile
- pom.xml
- src/main/webapp/index.hmtl
这是我的Docker文件:
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
但显然它不起作用。
有什么想法吗?
由于您分享了 运行ning 使用 tty 和交互式标记解决了您的问题,
docker run -ti --rm -p 8080:8080 webapp-example
那是因为您的基础映像是 java:8,它主要是为 运行 应用程序在前端模式(带有 -ti 标志)下创建的,或者仅在 -d 模式下编译。
此外,由于 maven 是构建工具,不应用于 运行 应用程序,因此您应该,
- 使用 maven:latest 图片创建您的网络应用程序。
- 使用官方tomcat image.
单独部署为tomcat容器
我正在尝试在 Docker 容器中使用 Maven 和 运行 使用 Tomcat7 构建一个简单的网络应用程序。
这是我的结构:
- Dockerfile
- pom.xml
- src/main/webapp/index.hmtl
这是我的Docker文件:
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
但显然它不起作用。
有什么想法吗?
由于您分享了 运行ning 使用 tty 和交互式标记解决了您的问题,
docker run -ti --rm -p 8080:8080 webapp-example
那是因为您的基础映像是 java:8,它主要是为 运行 应用程序在前端模式(带有 -ti 标志)下创建的,或者仅在 -d 模式下编译。
此外,由于 maven 是构建工具,不应用于 运行 应用程序,因此您应该,
- 使用 maven:latest 图片创建您的网络应用程序。
- 使用官方tomcat image. 单独部署为tomcat容器