도커로 설치한 Tomcat에 war/jar 파일을 도커로 설치한 Jenkins을 통해 배포를 하려는 과정에서 java.io.FIleNotFoundException: <url>/manager/text/list
라는 오류가 발생하여 빌드 실패를 30번 가까이 했다.
tomcat을 설치하고 구성한 과정은 다음과 같다.
docker pull tomcat
을 활용하여 tomcat을 설치하기/usr/local/tomcat/conf/tomcat-users.xml
에서 내가 필요한 role을 추가하고 유저들을 추가하여 각각 role을 배정해준 것docker run <포트 설정 등등>
을 통해 tomcat 컨테이너를 실행한것결론만 말하자면 위와 같은 에러가 발생한 것은
docker pull tomcat
을 사용하면 /usr/local/tomcat/webapps의 하단에 아무런 파일이 존재하지 않기 때문이다.
이전과 달리 webapps가 default로 enable되어 있지 않기 때문에 /webapps.dist에 있는 파일들을 전부 /webapps로 이동해주는 작업이 필요하다.
따라서 다음과 같은 명령어를 bash로 docker container 들어가서 실행해주면 된다.
cp -avT $CATALINA_HOME/webapps.dist $CATALINA_HOME/webapps
그 후, docker container을 재실행해주면 끝!
++ 더 나은 방법은 로컬에서 톰캣 공식 zip 파일을 다운받고 압축을 푼 후 톰캣 도커 실행할 때 로컬의 /webapps와 /conf를 volume으로 추가해주는 것이다. 이러면 파일 수정하기도 더 쉬워진다.
참고자료
Stackoverflow: Cannot find manager application in a tomcat9 from docker
좋은 글 감사합니다. 자주 올게요 :)