spring-cloud / spring-cloud-dataflow

A microservices-based Streaming and Batch data processing in Cloud Foundry and Kubernetes
https://dataflow.spring.io
Apache License 2.0
1.1k stars 578 forks source link

Dockerfile overriden when deploying stream app #5930

Open ram4444 opened 1 week ago

ram4444 commented 1 week ago

When I start deploying stream app and pull my docker image from repo. which dockerfile has a line of

ENTRYPOINT ["java", "-Dspring.profiles.active=dev", "-jar", "my-application.jar"]

the error log shown on my K8S is Error: Could not find or load main class org.springframework.boot.loader.launch.JarLauncher │ │ Caused by: java.lang.ClassNotFoundException: org.springframework.boot.loader.launch.JarLauncher

Of cause the docker image can be run in my local docker

I have tried the fix below which is found somewhere easily

ENTRYPOINT ["java", "org.springframework.boot.loader.launch.JarLauncher", "-Dspring.profiles.active=dev", "my-application.jar"]

On K8S I got the same error message on my own local docker I got this message as well

May I know is it supposed not work or my dockerfile entrypoint got overriden when the STREAM APP is being deployed?

INFO: SCDF installed from helm with docker.io/bitnami/spring-cloud-dataflow:2.11.4-debian-12-r3 docker.io/bitnami/spring-cloud-skipper:2.11.4-debian-12-r2

SCDF Application is a Spring boot and its docker image build by Kaniko

corneil commented 1 week ago

@ram4444 Please configure deployer.<application>.kubernetes.entryPointStyle=<Entry Point Style> Where <Entry Point Style> is one of exec, shell or boot I suggest you try shell for your case.

I would suggest you create docker images using Spring Boot Gradle or Maven plugins to produce a container using Paketo buildpacks.