在启动期间将部署文件传递到docker容器中

时间:2017-05-14 12:28:00

标签: tomcat docker

我想将.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容器中而无需再次重建图像?

1 个答案:

答案 0 :(得分:1)

是的,您可以在添加-v /your/host/dir:/your/dir/inside/container的docker run命令上映射卷。通过这种方式,您的主机上将有一个位于容器内的目录。

然后,您可以将所需文件复制到该目录以将其部署到容器上。然后,如果您需要在容器内运行命令(例如重新启动服务),您可以使用docker exec <containerId> <yourCommand>