#docker #kubernetes #docker-compose #dockerfile #containers
#docker #kubernetes #docker-compose #dockerfile #контейнеры
Вопрос:
Я запускаю кластер kubernetes с minikube на ubuntu server 20.04.1 LTS. Когда я запускаю развертывания, я могу получить доступ к серверу 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.
Как я могу это решить?
Спасибо
Комментарии:
1. Как ваш docker compose связан с вашим развертыванием kubernetes? Что касается
404
сообщения, оно приходит с вашего сервера Tomcat? Вы проверили его журналы? Он должен сообщить вам точную причину этой404
ошибки. Вы должны иметь возможность видеть конкретный путь, который пытается получить ваш HTTP-запрос.2. Спасибо, @mario Я сделал это и обнаружил, что ошибки возникают при извлечении . файл войны внутри контейнера. Также была ошибка в версии сервера tomcat, используемого для приложения. теперь это решено. Спасибо
Ответ №1:
Я проверил журналы внутри контейнеров и обнаружил, что ошибки возникают при извлечении .файл войны внутри контейнера. Также была ошибка в версии сервера tomcat, используемого для приложения. Итак, я изменил версию tomcat на другую версию.
Теперь это решено. Спасибо