如果您使用的是 spring mvc 项目,那么您需要服务器来运行您的应用程序假设您使用的是 tomcat,那么您需要您的应用程序使用的 tomcat 的基本映像,您可以通过 FROM 命令指定它。
您可以使用 ENV 命令设置环境变量。
您还可以使用在 Docker 映像构建期间执行的 RUN 命令。例如,授予对 webapps 文件夹的读写执行权限,以便 tomcat 解压缩战争文件
RUN chmod -R 777 $CATALINA_HOME/webapps
还有一个命令是 CMD。无论您在 CMD 命令中指定什么,它都会在容器运行时执行。您可以在 CMD 命令中使用逗号 (,) 分隔的双引号 (" ") 指定选项。例如
CMD ["catalina.sh","start"]
(注意:记住 RUN 命令在构建映像时执行,而 CMD 在运行容器时执行,这对新用户来说会造成混淆)。
这是我的 Dockerfile -
FROM tomcat:9.0.27-jdk8-openjdk
VOLUME /tmp
RUN chmod -R 777 $CATALINA_HOME/webapps
ENV CATALINA_HOME /usr/local/tomcat
COPY target/*.war $CATALINA_HOME/webapps/myapp.war
EXPOSE 8080
CMD ["catalina.sh","run"]
使用命令构建图像
docker build -t imageName <path_of_Dockerfile>
使用命令检查你的 docker 镜像
docker images
使用命令运行镜像
docker run -p 9999:8080 imageName
这里 8080 是 tomcat 端口,应用程序可以访问 9999 端口
尝试访问您的应用程序
localhost:9999/myapp/