我尝试从本地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” ...
答案 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'崩溃了我的图像。