Tôi khá mới đối với Tomcat và Docker - vì vậy tôi có thể thiếu một Tomcat cơ bản ở đâu đó trong câu hỏi này.Triển khai Java webapp để Tomcat 8 chạy trong vùng chứa Docker
Điều tôi đang cố gắng làm là tạo vùng chứa Docker chạy một dịch vụ web SpringBoot Restful chỉ trả về một số dữ liệu tĩnh. Đây là tất cả chạy trên OSX vì vậy tôi đang sử dụng Boot2Docker là tốt.
Tôi đã viết Dockerfile của riêng tôi để xây dựng container rằng ứng dụng của tôi chạy trong:
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 này hoạt động tốt và tôi có thể bắt đầu các container từ các hình ảnh được tạo ra.
docker build -t myapp .
docker run -it --rm -p 8888:8080 myapp
Vùng chứa này bắt đầu chính xác và không xuất hiện lỗi và hiển thị thông báo cho biết ứng dụng của tôi đã được triển khai.
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
Vùng chứa cũng đã sao chép myapp.war vào đường dẫn được mô tả trong Dockerfile. Hơn nữa, tôi có thể điều hướng đến trang mặc định của Tomcat để xác nhận rằng Tomcat đang chạy, tôi cũng có thể nhấn tất cả các ví dụ, v.v.
Để khắc phục sự cố, khi tôi điều hướng đến http://192.168.59.103:8888/myapp/getData Tôi nhận được 404. Tôi không thể tìm ra lý do. Tôi có thiếu một cái gì đó liên quan đến một triển khai .war để Tomcat?
Bạn nhận địa chỉ IP từ đâu? –
Đó là máy được gán cho máy ảo Boot2Docker của tôi. Nhấn vào IP đó: cổng không có/myapp hiển thị trang Tomcat mặc định. – Chris
Tôi là một anh chàng Linux nên hành vi có thể khác nhau nhưng hãy thử truy cập localhost: 8080 thay thế. –