1. 在JavaWeb项目的根目录下,创建一个名为"Dockerfile"的文件。Dockerfile是用于构建Docker镜像的脚本文件。
# 设置基础镜像
FROM tomcat:10.0.10-jdk11-openjdk-slim
# 设置环境变量
ENV CATALINA_HOME /usr/local/apache-tomcat-10.0.10
ENV PATH ${CATALINA_HOME}/bin:$PATH
# 复制Tomcat安装文件和目录到正确位置
COPY apache-tomcat-10.0.10 /usr/local/apache-tomcat-10.0.10
# 将构建生成的war包复制到Tomcat的webapps目录下
COPY target/demo.war ${CATALINA_HOME}/webapps/
注意:
- 在https://editor.csdn.net/md/?articleId=131007170中,使用的是tomcat10.1.9的版本,但是会报错manifest for tomcat:10.1.9-jdk11-openjdk-slim not found,表明在Docker Hub上找不到Tomcat 10.1.9版本与OpenJDK 11配合使用的镜像。可能的原因是该镜像标签不存在或被移除。所以此处重新下载了tomcat10.0.10,并设置了对应的jdk11基础镜像;
- 在Dockerfile中,需要确保正确复制了Tomcat的安装文件和目录,通常是通常是/usr/local/tomcat;
下载的tomcat10.0.10可放在JavaWeb项目的根目录下,原因是Docker在构建镜像时,会将当前目录以及Dockerfile所在的目录作为构建上下文。需要确保要复制的文件或目录位于构建上下文中,以便Docker可以正确访问它们。如果文件或目录位于Dockerfile所在的目录之外,你需要将它们移动到构建上下文中,或者使用相对路径指定正确的位置。文件或目录权限问题:检查要复制的文件或目录的权限。确保Docker在构建镜像时可以访问这些文件或目录,并且具有适当的读取权限。
- 配置环境变量也是必须的
2. 构建Docker镜像
docker build -t my-java-webapp .
3. Docker容器中运行你的JavaWeb应用程序
docker run -p 8080:8080 my-java-webapp
4. 进入localhost:8080/demo访问即可