2017-10-19 114 views
0

我在Docker中運行兩個容器組成yaml文件。一個是應用程序服務器(帶有已部署的應用程序),另一個是Oracle數據庫。我有以下yaml文件。Docker-compose重啓策略導致日誌被削減

services: 
    jboss-7.0.3: 
    image: jboss-7.0.3 
    build: ../dockerfiles/jboss-eap-7.0.3 
    ports: 
     - '8080:8080' 
     - '9990:9990' 
     - '9999:9999' 
     - '8787:8787' 
    restart: always 

    oracle11: 
    image: oracle11 
    build: ../dockerfiles/oracle-11xe-dima 
    ports: 
     - "48088:48088" 
     - "1521:1521" 
     - "40022:40022" 
    restart: always 

我想調試爲什麼服務器無法連接到數據庫(在standalone-full.xml文件我有oracle11名稱作爲主機指定)。現在對我來說奇怪的是我不能選擇導致jboss重啓的錯誤。它總是圍繞數據庫連接,但我應該能夠看到日誌中的一些錯誤,但在錯誤日誌出現之前,jboss會重新啓動。因此我看不出是什麼導致了錯誤。即使沒有重新啓動策略,它也會立即停止信號並記錄日誌。我該如何解決這個問題?

+1

1.您應該爲您的服務定義一個'container_name',否則它們會得到一個前綴和後綴。你應該在你的jboss配置中使用oracle的容器名稱。 2. *無*重新啓動策略,即使容器立即停止,您也應該能夠看到日誌。你用什麼命令來運行這個組合文件? – Munchkin

+0

1.正如你所說的容器名稱有帖子和前綴,但是當我登錄容器bash時,我可以成功ping通oracle11,所以看起來這個主機名是可以解析的。 2.沒有重啓策略我有同樣的問題,我只看到'2017-10-19 08:32:18,744信息[標準輸出](LifecycleManager-0)初始PCEJdbcMonitorService'這是我看到的最後一行(下一個應用程序要去連接到數據庫,通常有錯誤,警告等。我的命令是docker-compose up -d –

+1

也許你可以嘗試在你的jboss – Munchkin

回答

0

我終於弄清楚發生了什麼事情..這真的很簡單的錯誤 - 爲什麼我的原木被切割的原因是......實際上沒有切割。我不得不在我的碼頭主機中留下小小的內存,JBoss被系統殺死,所以這就是原因。現在,在增加內存到碼頭主機之後,所有東西都像是魅力一樣

1

從您的yaml文件中,我可以看到您還沒有將您的服務器鏈接到數據庫。在您的服務jboss-7.0.3中使用links:oracle11字段。而DB URI應該包含你的數據庫容器地址/數據庫服務名稱。

+0

謝謝,但現在不需要使用鏈接,docker-compose構建網絡,並且兩個容器都可以使用它們的名稱作爲主機名在此網絡中進行通信。 –