Запуск приложения Java в контейнере Kubernetes не работает - PullRequest
0 голосов
/ 14 января 2019

Я пытаюсь развернуть и запустить приложение java в POD kubernetes, для которого я получаю ошибку ниже. Но когда я запускаю его как докер-контейнер, он работает нормально.

Вот Dockerfile -

FROM openjdk:8-jre-alpine
ENV artifact mysessionmanager-1.0.0-SNAPSHOT.jar
WORKDIR /root/apps
COPY . /root/apps
EXPOSE 8080
ENTRYPOINT ["sh", "-c"]
CMD ["java -jar ${artifact}"]

docker build -t mysessionmanager .
docker tag mysessionmanager xxxx/mysessionmanager:v1
docker push xxxx/mysessionmanager
kubectl run mysessionmanager --image=xxxx/mysessionmanager:v1 --port=8080
kubectl expose deployment --type=NodePort --port=80 --target-port=8080 --name=mysessionmanager  

kubectl get deployments показывает мое развертывание Доступный статус как 0

kubectl get pods отображение статуса моего POD как CrashLoopBackOff

kubectl get logs mysessionmanager-5654545f8-mvt5x ничего не показывает

kubectl describe pod mysessionmanager-5654545f8-mvt5x

Reason: CrashLoopBackOff
Last State: Terminated
Reason: ContainerCannotRun
Message: OCI runtime create failed: container_linux.go:344: starting container process caused "exec: \"java -jar mysessionmanager-1.0.0-SNAPSHOT.jar\": executable file not found in $PATH": unknown

Но когда я напрямую запускаю образ докера с помощью приведенной ниже команды, он работает нормально.

docker run -it mysessionmanager

Ценю любую помощь. Спасибо

1 Ответ

0 голосов
/ 14 января 2019

нет необходимости использовать ОБА команды cmd и entrypoint.

в своих проектах я создаю небольшой скрипт bash, внутри которого написана команда java.

этот маленький скрипт выполняется в моей точке входа без настроенного cmd.

...