【问题标题】:Use of docker tomcat with external WARdocker tomcat 与外部 WAR 的使用
【发布时间】:2016-08-30 14:22:07
【问题描述】:

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

遇到的两种方法是:

  1. 扩展基础 tomcat 映像并将 WAR 文件复制到 /webapps,然后将映像重建为您自己的。
  2. 使用两个容器,第一个是裸tomcat,第二个是数据容器,例如busybox,其中包含WAR 文件。然后,您可以将busybox 容器挂载到tomcat 容器/webapps,然后WAR 文件就会被有效地拾取。

我喜欢第二种方法的声音,但是我无法成功地让它工作。

我尝试使用 busybox 创建一个数据容器,然后使用 docker compose 来启动服务。 WAR 不会被复制,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"

docker-compose up 运行后,不会复制WAR 文件,busybox 容器会立即退出。

任何帮助将不胜感激。

【问题讨论】:

    标签: tomcat docker docker-compose


    【解决方案1】:

    根据定义,数据容器正在退出,即其 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
    

    另外请注意,我没有使用volumes_from,而是使用volumes,因为volumes_from 相当不推荐使用我认为docker 1.11 引入的“volumes”

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

    【讨论】:

      猜你喜欢
      • 2017-01-04
      • 2019-05-11
      • 1970-01-01
      • 2017-02-03
      • 2017-12-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多