2016-08-30 57 views
1

我一直在尋找docker上tomcat的最佳實踐以及如何鏈接WAR文件。與外部WAR一起使用docker tomcat

已經遇到這兩種方法:

  1. 擴展底座tomcat的圖像和WAR文件複製到/webapps,則重建圖像作爲自己的。
  2. 使用兩個容器,第一個裸機和第二個數據容器,比如busybox,這個容器是WAR文件。然後,您將在/webapps的tomcat容器上安裝busybox容器,並且WAR文件將被有效拾取。

我喜歡第二種方法的聲音,但是我一直無法成功地使這個工作。

我試圖用busybox創建一個數據容器,然後用docker compose來啓動服務。 WAR不會被複制,busybox容器會立即停止。

數據容器Dockerfile:

FROM busybox 

RUN mkdir /webapps 
COPY ./demo.war /webapps/demo.war 

VOLUME ['/webapps'] 

泊塢窗,compose.yml

version: '2' 
services: 
    data: 
    image: <Data Container Image> 

    tomcat: 
    image: tomcat:8.5.4-jre8 
    volumes_from: 
     - data 
    ports: 
     - "678:8080" 

WAR文件不是在複製和busybox的容器出口docker-compose up後立即運行。

任何援助將不勝感激。

回答

0

數據容器根據定義退出其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_from是相當有「量」的使用已過時,我認爲與碼頭工人介紹1.11

提示:調整tomcat容器中的安裝路徑,其大概是/ usr/local/tomcat/webapps