2016-10-03 3 views
1

Docker를 사용하여 응용 프로그램을 실행하려고합니다. 응용 프로그램은 Tomcat에서 실행되는 Java 프로그램입니다. 그래서 나는 이미지를 구축하고 있고처럼 내 Dockerfile 보이는 : 보시다시피스프링 에이전트 : 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_OPTS 설정을 통해 setenv.sh에서 - 같은 예외. lib가 컨테이너에 복사되고 지정된 경로에 존재합니다. javaagent 옵션을 사용하지 않고 동일한 이미지를 실행하여 검사 한 다음 터미널에서 액세스합니다. spring-agent이 lib 폴더에 있었기 때문에 조금 붙어 있습니다.

나는 새로운 우분투 사용자이고 내가 할 수있는 어떤 권한 문제 등

어떤 제안이있을 수 있습니다 생각?

답변

0

올바른 방법은 Docker가 이전에 생성 된 jar 파일을 전달하는 대신 jar 파일을 작성하게하는 것입니다. https://github.com/glapp/mape/blob/master/Dockerfile

이것은 당신의 봄 응용 프로그램에 도움이 될 수 있습니다 : https://spring.io/guides/gs/spring-boot-docker/

+0

어떻게 이것이 javaagent 문제에 도움이 될 수 있습니까? 언급 할 사항이 있지만 솔루션이라고 생각하지 않습니다. – quento

+0

왜 javaagent가 문제라고 생각하십니까? 오류 메시지는 ZIP 파일을 여는 데 문제가 있거나 매니페스트 파일이 없음을 나타냅니다. 이미 매니페스트 파일이 jar 파일에 있는지 확인 했습니까? 나는 이것이 진정한 원인이라고 생각한다. – RichArt

0

그런데 그 변수가 javaagent 옵션이 호출 될 때 놓친, 그래서 임시 해결책을 발견했다대로, 문제가 $CATALINA_HOME에 있었다 나는 이런 식으로했다 $CATALINA_HOME 대신 /usr/local/tomcat/과 같은 경로를 지정하십시오.

이전 단계와 마찬가지로 예기치 않게 파일을 $CATALINA_HOME에 복사하고 작동합니다.

나는이 해결책을 좋은 해결책으로 보이지 않기 때문에 여전히이 답을 올바르게 검사하지 않을 것입니다. 모든 아이디어는 여전히 감사합니다.

관련 문제