迷你罐中的腐败罐

时间:2018-12-13 11:53:56

标签: java spring docker kubernetes minikube

我尝试从本地docker映像在minikube中运行我的spring-boot应用程序。

$ eval $(minikube docker-env)
$ docker build -t built_name .
$ kubectl run serviceName --image=image_name:latest --image-pull-policy=Never

我的Dockerfile:

FROM registry.access.redhat.com/redhat-openjdk-18/openjdk18-openshift

ARG jarFinal

ENV LC_ALL=en_US.utf8

COPY --chown=185:0 ${jarFinal} app.jar
COPY --chown=185:0 entrypoint.sh /entrypoint.sh
COPY --chown=185:0 version.json /version.json

RUN chmod +x /entrypoint.sh

EXPOSE 8080

ENTRYPOINT [ "/entrypoint.sh" ]

CMD java -Xmx256m -jar app.jar

此后,我在kubernets pods日志中看到:

Error: Invalid or corrupt jarfile app.jar

但是,当我尝试使用“ RUN java -Xmx256m -jar app.jar”在本地启动此jar时,其启动成功。我做错了什么?谢谢。

UPD:我尝试使用本地docker启动映像(docker run),一切正常,然后我使用minikube docker在minikube中尝试了相同的镜像(minikube ssh-> docker run),并且得到了相同的错误“ corrupt jar” ...

1 个答案:

答案 0 :(得分:1)

问题解决了!

$ docker save myImage | (eval $(minikube docker-env) && docker load)
$ kubectl ssh 'docker tag myImage myTag'
$ kubectl run ServiceName --image=myTag --image-pull-policy=Never

'docker build'崩溃了我的图像。