我想将.war应用程序部署到docker容器中,
我尝试构建包含tomcat服务器的docker Image及其部署
诸如战争和罐子之类的文件,
#set the base image
FROM my-base-image
# author
MAINTAINER elsayed
# extra metadata
LABEL version="1.0"
LABEL description="The First Image for tomcat"
#add server-files
RUN mkdir -p /root/apache-tomcat-8.0.24
COPY apache-tomcat-8.0.24 /root/apache-tomcat-8.0.24
add receiver.war /root/apache-tomcat-8.0.24/webapps
add common.jar /root/apache-tomcat-8.0.24/mule-libs/user/myapp
add model.jar /root/apache-tomcat-8.0.24/mule-libs/user/myapp
add wsdl.jar /root/apache-tomcat-8.0.24/mule-libs/user/myapp
add service.jar /root/apache-tomcat-8.0.24/mule-libs/user/myapp
add StatusCodes.jar /root/apache-tomcat-8.0.24/mule-libs/user/myapp
RUN echo '/root/apache-tomcat-8.0.24/bin/catalina.sh run -Xms256m -Xmx1G -XX:MaxPermSize=256m -Dmule.verbose.exceptions=true -Djava.net.preferIPv4Stack=true -Dlog4j.configuration=file:/root/elsayed/server/logging/tomcat/log4j.properties -Dlog4j.debug=true -Dvericash.home=/root/elsayed -Djboss.ejb.client.properties.file.path=/root/jboss-ejb-client.properties'
>> /root/apache-tomcat-8.0.24/bin/start.sh
EXPOSE 9191
CMD ["/bin/bash", "/root/apache-tomcat-8.0.24/bin/start.sh"]
我正在开发中使用它,我不断编辑和部署应用程序多次,所以我必须再次构建docker镜像,
有没有办法在运行它时将.war和jar传递到docker容器中而无需再次重建图像?
答案 0 :(得分:1)
是的,您可以在添加-v /your/host/dir:/your/dir/inside/container
的docker run命令上映射卷。通过这种方式,您的主机上将有一个位于容器内的目录。
然后,您可以将所需文件复制到该目录以将其部署到容器上。然后,如果您需要在容器内运行命令(例如重新启动服务),您可以使用docker exec <containerId> <yourCommand>
。