2017-10-19 129 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构建网络,并且两个容器都可以使用它们的名称作为主机名在此网络中进行通信。 –