2017-11-11 406 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