2016-10-14 50 views
2

我想在瀏覽器上顯示我爲學校項目創建的webapp。 首先,我將Dockerfile和我的.war文件放在同一個文件夾/home/giorgio/Documenti/dockerProject中。我已經寫在我的Dockerfile如下:無法在使用Docker的tomcat上運行web應用程序

# Pull base image 
From tomcat:7-jre7 

# Maintainer 
MAINTAINER "xyz <[email protected]"> 

# Copy to images tomcat path 
RUN rm -rf /usr/local/tomcat/webapps/ROOT 
COPY file.war /home/giorgio/Documenti/apache-tomcat-7.0.72/webapps/ 

然後,我已經建立了與圖像從Ubuntu shell的命令:

docker build -t myName /home/giorgio/Documenti/dockerProjects 

最後,我在shell中運行:

現在
docker run --rm -it -p 8080:8080 myName 

,一切正常,並沒有表現出然而任何錯誤,當我想達到localhost:8080從我的瀏覽器的任何顯示出來,不過tomcat的已開始運行完全正常。

任何關於我看不到的可能問題的想法? 謝謝!

+0

你提到戰爭文件,但你一個hello.py文件複製到容器中。你想部署一個戰爭文件嗎? –

+0

'碼頭日誌myName'會顯示你的容器輸出,也許錯誤是傾銷那裏 – STLMikey

+0

是的,hello.py只是一個測試。我編輯了這個問題。 @STLMikey我會嘗試一下,然後在這裏發佈輸出。 – Pino

回答

1

這是你的整個Dockerfile?

因爲你只是刪除所有根內容(步驟#3)

然後戰爭文件複製您的應用程序(步驟#4) - 可能錯誤的文件夾在這個問題唯一的(應該是/ usr /本地/ tomcat的/ webapps /目錄

我看不出有任何端點或啓動前臺應用程序。

我想你需要添加:

CMD ["/usr/local/tomcat/bin/catalina.sh", "run"] 

,並與剛剛運行Tomcat。它是EXPOSE端口的例程,但是當您使用-p時,docker會執行隱式公開。

所以,你應該Dockerfile樣子:

# Pull base image 
From tomcat:7-jre7 

# Maintainer 
MAINTAINER "xyz <[email protected]"> 

# Copy to images tomcat 
RUN rm -rf /usr/local/tomcat/webapps/ROOT 

# fixed path for copying 
COPY file.war /usr/local/tomcat/webapps/ 

# Routine for me - optional for your case 
EXPOSE 8080 

# And run tomcat 
CMD ["/usr/local/tomcat/bin/catalina.sh", "run"] 
+0

謝謝你的回答!然而似乎沒有任何改變。本地主機中同一個空白頁面:8080 – Pino

+0

它是空白頁面還是頁面未找到?你的戰爭應用中是否有任何背景?如果是,則需要使用localhost:8080/context – VladoDemcak

+0

您可以測試:'localhost:8080/file' - 文件的名稱應該是上下文。或者爲了測試目的而使用難看的解決方案'COPY file.war/usr/local/tomcat/webapps/ROOT.war'並檢查localhost:8080 – VladoDemcak

相關問題