【发布时间】:2020-12-13 17:11:52
【问题描述】:
我在 ubuntu 服务器 20.04.1 LTS 上运行带有 minikube 的 kubernetes 集群。当我启动部署时,我可以从集群访问 Tomcat 服务器,但我无法打开我的应用程序,我收到错误消息:
HTTP Status 404 – Not Found
这是我的 docker-compose 文件:
version: "3"
#NETWORK
networks:
network1:
driver: bridge
volumes:
dir-site:
driver_opts:
device: /smartclass_docker/site/
type: bind
o: bind
# Declare services
services:
# service name
server:
container_name: server
# Container image name
image: repo/myimage
## Image used to build Dockerfile
build:
#dockerfile: Dockerfile
context: ./smart/
# Container ports and host matching
ports:
- "3306:3306"
- "8080:8080"
## Startup Policy
restart driver: bridge
volumes:
dir-site:
driver_opts:
device: /smart/site/
type: bind
o: bind
# Declaration of services
services:
# service name
server:
container_name: server
# name of the image
image: repo/myimage
## Use IMAGE BUILD DOCKERFILE
build:
#dockerfile: Dockerfile
context: ./smart/
# CONTAINER ports
ports:
- "3306:3306"
- "8080:8080"
## Startup policy
restart: always
# connect to network1
networks:
- network1
volumes:
- /data/dockerStore/data/db_server_1:/var/lib/mysql/
restart: always
# connect to network1
networks:
- network1
volumes:
- /data/dockerStore/data/db_server_1:/var/lib/mysql/
这是我的 kubernetes 部署文件:
apiVersion: apps/v1
kind: Deployment
metadata:
name: myapp
spec:
replicas: 3
selector:
matchLabels:
app: myapp
# type: LoadBalancer
template:
metadata:
labels:
app: myapp
spec:
containers:
- name: myapp
image: jksun12/vdsaipro
command: ["/run.sh"]
ports:
- containerPort: 80
- containerPort: 3306
- containerPort: 9001
- containerPort: 9002
# volumeMounts:
# - name: myapp-pv-claim
# mountPath: /var/lib/mysql
# volumes:
# - name: myapp-pv-claim
# persistentVolumeClaim:
# claimName: myapp-pv-claim
---
apiVersion: apps/v1
kind: PersistentVolumeClaim
metadata:
name: myapp-pv-claim
labels:
app: myapp
spec:
accesModes:
- ReadWriteMany
resources:
requests:
storage: 4Gi
我的应用程序文件位于 /smart 目录中,该目录是我实际运行 docker-compose 并构建主 Dockerfile 的目录的子目录。 我该如何解决? 谢谢
【问题讨论】:
-
您的 docker compose 与您的 kubernetes 部署有什么关系?至于
404消息,它来自您的Tomcat 服务器吗?你检查过它的日志吗?它应该告诉你这个404错误的确切原因。您应该能够看到您的 http 请求尝试获取的具体路径。 -
谢谢,@mario 我这样做了,我发现错误来自容器内的 .war 文件的提取。用于应用程序的 tomcat 服务器版本也有错误。现在解决了。谢谢
标签: docker kubernetes docker-compose dockerfile containers