docker tomcat在外部战争中的使用

docker tomcat在外部战争中的使用,tomcat,docker,docker-compose,Tomcat,Docker,Docker Compose,我一直在研究docker上tomcat的最佳实践以及如何链接WAR文件 遇到的两种方法是: 扩展基本tomcat映像并将WAR文件复制到/webapps,然后将映像重建为您自己的映像 使用两个容器,第一个是裸tomcat,第二个是数据容器,如busybox,它是WAR文件的容器。然后将busybox容器装载到位于/webapps的tomcat容器上,WAR文件将被有效地提取 我喜欢第二种方法的声音,但是我一直无法成功地让它工作 我尝试使用busybox创建一个数据容器,然后使用docker co

我一直在研究docker上tomcat的最佳实践以及如何链接WAR文件

遇到的两种方法是:

  • 扩展基本tomcat映像并将WAR文件复制到
    /webapps
    ,然后将映像重建为您自己的映像
  • 使用两个容器,第一个是裸tomcat,第二个是数据容器,如busybox,它是WAR文件的容器。然后将busybox容器装载到位于
    /webapps
    的tomcat容器上,WAR文件将被有效地提取
  • 我喜欢第二种方法的声音,但是我一直无法成功地让它工作

    我尝试使用busybox创建一个数据容器,然后使用docker compose启动服务。战争不会被复制,busybox容器会立即停止

    数据容器Dockerfile:

    FROM busybox
    
    RUN mkdir /webapps
    COPY ./demo.war /webapps/demo.war
    
    VOLUME ['/webapps']
    
    docker compose.yml

    version: '2'
    services:
      data:
        image: <Data Container Image>
    
      tomcat:
        image: tomcat:8.5.4-jre8
        volumes_from:
          - data
        ports:
          - "678:8080"
    
    版本:“2”
    服务:
    数据:
    图片:
    tomcat:
    图片:tomcat:8.5.4-jre8
    卷从:
    -资料
    端口:
    - "678:8080"
    
    WAR文件不会被复制,busybox容器在运行
    docker compose up
    后立即退出


    任何帮助都将不胜感激。

    根据定义,数据容器正在退出,即其DNA

    您需要将其公开为卷或使用

    version: '2'
    services:
      data:
        image: <Data Container Image>
        volumes:
          - webapps:/webapps
      tomcat:
        image: tomcat:8.5.4-jre8
        volumes:
          - webapps:/webapps
        ports:
          - "678:8080"
    volumes:
      webapps:
        driver: local
    
    版本:“2”
    服务:
    数据:
    图片:
    卷数:
    -webapps:/webapps
    tomcat:
    图片:tomcat:8.5.4-jre8
    卷数:
    -webapps:/webapps
    端口:
    - "678:8080"
    卷数:
    网络应用程序:
    司机:本地
    
    另外请注意,我没有使用volumes\u from,而是使用volumes,因为volumes\u from与docker 1.11中引入的“volumes”的用法相当不推荐


    提示:调整tomcat容器中的装载路径,其可能是/usr/local/tomcat/webapps

    根据定义,数据容器正在退出,即其DNA

    您需要将其公开为卷或使用

    version: '2'
    services:
      data:
        image: <Data Container Image>
        volumes:
          - webapps:/webapps
      tomcat:
        image: tomcat:8.5.4-jre8
        volumes:
          - webapps:/webapps
        ports:
          - "678:8080"
    volumes:
      webapps:
        driver: local
    
    版本:“2”
    服务:
    数据:
    图片:
    卷数:
    -webapps:/webapps
    tomcat:
    图片:tomcat:8.5.4-jre8
    卷数:
    -webapps:/webapps
    端口:
    - "678:8080"
    卷数:
    网络应用程序:
    司机:本地
    
    另外请注意,我没有使用volumes\u from,而是使用volumes,因为volumes\u from与docker 1.11中引入的“volumes”的用法相当不推荐

    提示:调整tomcat容器中的装载路径,可能是/usr/local/tomcat/webapps