2017-11-11 230 views
0

我有以下泊坞窗文件来运行我的Java应用程序dockerfile运行Java立即退出

FROM gidikern/rhel-oracle-jre 

RUN mkdir /application 
WORKDIR /application 
CMD "java -Dspring.profiles.active=sprofileName -jar my.war --spring.config.location=./application.properties > app.log > 2>&1" 

,我使用运行泊坞窗 - 撰写:

backend_app: 
    restart: always 
    image: my-app-runner:latest 
    ports: 
    - "8080:8080" 
    volumes: 
    - ./app/my.war:/application/my.war:Z 
    - ./app/application.properties:/application/application.properties:Z 
    - /srv/docker/backend_app/logs:/application/my.log:Z 
    tty: true 
然而

当我开始我得到我的应用程序不断使用代码0退出。

我找不到问题所在。

+0

为什么'java -jar my.war'工作? “war”是一个Web档案 - 设计为由Java EE兼容的servlet容器运行。它具有不同的'jar'格式,不​​能简单地由java命令执行。 –

+0

我忘了提及applicatoin的工作原理,如果我从docker外部的命令行运行它。 (这是一个war文件,由于来自pom.xml的配置,它是可执行文件) – mangusbrother

+1

好吧,不相关,但我强烈建议不要将它命名为'.war'。 –

回答

1

这个问题实际上是我的基本映像gidikern/RHEL-Oracle的JRE

我测试,甚至像LS的基本命令没有工作..

现在切换到openjdk,它很好。

0

很可能是您的应用程序出现错误。为了调试,我建议你在shell中运行容器并手动执行java命令以查看发生了什么。

换句话说:

docker run -it --name app-debug my-app-runner:latest /bin/bash 
java -Dspring.profiles.active=sprofileName -jar my.war --spring.config.location=./application.properties