Docker 컨테이너에서 실행되는 Tomcat 8에 Java webapp 배포
나는 Tomcat과 Docker를 처음 접했기 때문에 아마도이 질문에서 Tomcat 기본 사항이 누락되었을 것입니다.
내가하려는 것은 정적 데이터를 반환하는 SpringBoot Restful 웹 서비스를 실행하는 Docker 컨테이너를 빌드하는 것입니다. 이것은 모두 OSX에서 실행되므로 Boot2Docker도 사용하고 있습니다.
내 앱이 실행되는 컨테이너를 빌드하기 위해 고유 한 Dockerfile을 작성했습니다.
FROM tomcat:8.0.20-jre8
RUN mkdir /usr/local/tomcat/webapps/myapp
COPY /1.0-SNAPSHOT/my-app-1.0-SNAPSHOT.war /usr/local/tomcat/webapps/myapp/
이 Dockerfile은 잘 작동하며 생성 된 이미지에서 컨테이너를 시작할 수 있습니다.
docker build -t myapp .
docker run -it --rm -p 8888:8080 myapp
이 컨테이너는 올바르게 시작되고 오류를 출력하지 않고 내 앱이 배포되었다는 메시지를 표시합니다.
22-Mar-2015 23:07:21.217 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory
Deploying web application directory /usr/local/tomcat/webapps/myapp
컨테이너에는 Dockerfile에 설명 된 경로에 복사 된 myapp.war도 올바르게 있습니다. 또한 Tomcat 기본 페이지로 이동하여 Tomcat이 실행 중인지 확인할 수 있으며 모든 예제를 실행할 수도 있습니다.
문제에 대해 http://192.168.59.103:8888/myapp/getData로 이동 하면 404가 표시됩니다. 이유를 알 수 없습니다. Tomcat에 .war 배포와 관련하여 누락 된 것이 있습니까?
war
아래 디렉토리에 파일 을 복사하려고 합니다 webapps
. war 파일은 webapps
디렉토리에 복사해야합니다 .
mkdir 명령을 제거하고 war
다음과 같이 파일을 복사합니다 .
COPY /1.0-SNAPSHOT/my-app-1.0-SNAPSHOT.war /usr/local/tomcat/webapps/myapp.war
톰캣 autodeploy
이 켜져 있으면 전쟁을 추출합니다 .
이것에 대한 oneliner가 있습니다.
간단히 실행할 수 있습니다.
docker run -v /1.0-SNAPSHOT/my-app-1.0-SNAPSHOT.war:/usr/local/tomcat/webapps/myapp.war -it -p 8080:8080 tomcat
그러면 war 파일이 webapps 디렉토리에 복사되고 앱이 즉시 실행됩니다.
Tomcat은 webapps
디렉토리에 복사 된 전쟁 만 추출합니다 . Dockerfile
아래와 같이 변경 :
FROM tomcat:8.0.20-jre8
COPY /1.0-SNAPSHOT/my-app-1.0-SNAPSHOT.war /usr/local/tomcat/webapps/myapp.war
webroot를 지정하지 않은 경우 아래와 같이 URL에 액세스해야 할 수 있습니다.
http://192.168.59.103:8888/myapp/getData
이 샘플을 사용해 볼 수 있습니다.
FROM tomcat:9.0.11-jre10
MAINTAINER saravit
RUN rm -rf /usr/local/tomcat/webapps/*
COPY ./ROOT.war /usr/local/tomcat/webapps/ROOT.war
CMD ["catalina.sh","run"]
'development' 카테고리의 다른 글
Linux 플랫폼 드라이버와 일반 장치 드라이버의 차이점은 무엇입니까? (0) | 2021.01.07 |
---|---|
Python-TypeError : 'int'개체는 반복 할 수 없습니다. (0) | 2021.01.07 |
단위 테스트 (MSTest)를 병렬로 실행하는 방법은 무엇입니까? (0) | 2021.01.07 |
XML에서 컨테이너 요소없이 목록으로 역 직렬화 (0) | 2021.01.07 |
raw.github.com의 js 포함 (0) | 2021.01.07 |