2016-10-03 113 views
1

我正在嘗試使用Docker運行應用程序。應用程序是在Tomcat上運行的Java程序。所以,我建立一個形象,我Dockerfile樣子:Spring-agent:打開zip文件或JAR清單時出錯

FROM tomcat:7.0.72-jre8 

COPY Tomcat/ $CATALINA_HOME/ 

ENV JAVA_OPTS="$JAVA_OPTS -javaagent:$CATALINE_HOME/lib/spring-agent-2.5.6.jar -Xms2048m -Xmx2048m -Dorg.apache.el.parser.SKIP_IDENTIFIER_CHECK=true" 

正如你看到的,我使用-javaagent選項,但它會導致:

Error opening zip file or JAR manifest missing : /lib/spring-agent-2.5.6.jar 
Error occurred during initialization of VM 
agent library failed to init: instrument 

我試過同一通過設置JAVA_OPTSsetenv.sh - 同樣的例外。我確信lib被複制到容器並且存在於指定的路徑上。我通過運行沒有javaagent選項的相同圖像來檢查它,然後在終端中訪問它。 spring-agent在lib文件夾中,所以我有點卡住了。

我新的Ubuntu用戶,我想有可能是任何權限問題等

有什麼建議?

回答

0

正確的方法是讓Docker構建jar文件,而不是傳遞以前創建的jar文件。我這樣做是這樣的:https://github.com/glapp/mape/blob/master/Dockerfile

這可能是你的Spring應用程序有所幫​​助:https://spring.io/guides/gs/spring-boot-docker/

+0

這怎麼會有助於javaagent問題?真的,就像提到的事情,但我不認爲這是解決方案。 – quento

+0

你爲什麼認爲javaagent是問題所在?該錯誤消息指出它在打開zip文件或清單文件丟失時存在問題。你是否已經確認清單文件在你的jar文件中?我懷疑這是真正的原因。 – RichArt

0

好了,問題是$CATALINA_HOME當被調用javaagent選項變量已經錯過了,所以我找到了臨時的解決方案指定路徑如/usr/local/tomcat/而不是$CATALINA_HOME

非常意外,因爲在我將文件複製到$CATALINA_HOME之前的步驟,它的工作原理。

我仍然不會檢查這個答案是正確的,因爲它看起來不是很好的解決方案。任何想法仍然讚賞。

相關問題