我正在尝试在kubernetes POD中部署和运行java应用程序,我得到了下面的错误信息。但是当我将它作为docker容器运行时,它运行得很好。
这是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
显示我的POD状态为CrashLoopBackOff的kubectl get pods
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镜像时,它工作得很好。
docker run -it mysessionmanager
感谢任何人的帮助。谢谢
发布于 2019-01-14 18:41:46
不需要同时使用cmd和entrypoint命令。
在我的项目中,我创建了一个小的bash脚本,其中编写了java命令。
这个小脚本在我的入口点中运行,没有配置任何cmd。
https://stackoverflow.com/questions/54187150
复制相似问题