conductor icon indicating copy to clipboard operation
conductor copied to clipboard

Cannot run Conductor using Docker or build from source from head

Open andyren0110 opened this issue 1 year ago • 2 comments

Describe the bug A clear and concise description of what the bug is.

Details Conductor version: HEAD@ https://github.com/Netflix/conductor/commit/f07dc36f08dcaf91cb40ea6ee211c840de5ac8f3

To Reproduce Steps to reproduce the behavior:

  1. Clone the repo.
  2. Go to docker folder
  3. Run docker-compose build
  4. Run docker compose up
  5. The conductor server fails to start with the following error
conductor-server  | org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'workflowResource': Lookup method resolution failed; nested exception is java.lang.IllegalStateException: Failed to introspect Class [com.netflix.conductor.rest.controllers.WorkflowResource] from ClassLoader [org.springframework.boot.loader.LaunchedURLClassLoader@238e0d81]
conductor-server  |     at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.determineCandidateConstructors(AutowiredAnnotationBeanPostProcessor.java:289) ~[spring-beans-5.3.22.jar!/:5.3.22]
conductor-server  |     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.determineConstructorsFromBeanPostProcessors(AbstractAutowireCapableBeanFactory.java:1302) ~[spring-beans-5.3.22.jar!/:5.3.22]
conductor-server  |     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1219) ~[spring-beans-5.3.22.jar!/:5.3.22]
conductor-server  |     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:582) ~[spring-beans-5.3.22.jar!/:5.3.22]
conductor-server  |     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542) ~[spring-beans-5.3.22.jar!/:5.3.22]
conductor-server  |     at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) ~[spring-beans-5.3.22.jar!/:5.3.22]
conductor-server  |     at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-5.3.22.jar!/:5.3.22]
conductor-server  |     at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) ~[spring-beans-5.3.22.jar!/:5.3.22]
conductor-server  |     at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) ~[spring-beans-5.3.22.jar!/:5.3.22]
conductor-server  |     at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:955) ~[spring-beans-5.3.22.jar!/:5.3.22]
conductor-server  |     at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:918) ~[spring-context-5.3.22.jar!/:5.3.22]
conductor-server  |     at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:583) ~[spring-context-5.3.22.jar!/:5.3.22]
conductor-server  |     at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:147) ~[spring-boot-2.7.3.jar!/:2.7.3]
conductor-server  |     at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:734) ~[spring-boot-2.7.3.jar!/:2.7.3]
conductor-server  |     at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:408) ~[spring-boot-2.7.3.jar!/:2.7.3]
conductor-server  |     at org.springframework.boot.SpringApplication.run(SpringApplication.java:308) ~[spring-boot-2.7.3.jar!/:2.7.3]
conductor-server  |     at org.springframework.boot.SpringApplication.run(SpringApplication.java:1306) ~[spring-boot-2.7.3.jar!/:2.7.3]
conductor-server  |     at org.springframework.boot.SpringApplication.run(SpringApplication.java:1295) ~[spring-boot-2.7.3.jar!/:2.7.3]
conductor-server  |     at com.netflix.conductor.Conductor.main(Conductor.java:39) ~[classes!/:0.1.0-SNAPSHOT]
conductor-server  |     at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
conductor-server  |     at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:?]
conductor-server  |     at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:?]
conductor-server  |     at java.lang.reflect.Method.invoke(Unknown Source) ~[?:?]
conductor-server  |     at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:49) ~[conductor-server-0.1.0-SNAPSHOT-boot.jar:0.1.0-SNAPSHOT]
conductor-server  |     at org.springframework.boot.loader.Launcher.launch(Launcher.java:108) ~[conductor-server-0.1.0-SNAPSHOT-boot.jar:0.1.0-SNAPSHOT]
conductor-server  |     at org.springframework.boot.loader.Launcher.launch(Launcher.java:58) ~[conductor-server-0.1.0-SNAPSHOT-boot.jar:0.1.0-SNAPSHOT]
conductor-server  |     at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:65) ~[conductor-server-0.1.0-SNAPSHOT-boot.jar:0.1.0-SNAPSHOT]
conductor-server  | Caused by: java.lang.IllegalStateException: Failed to introspect Class [com.netflix.conductor.rest.controllers.WorkflowResource] from ClassLoader [org.springframework.boot.loader.LaunchedURLClassLoader@238e0d81]
conductor-server  |     at org.springframework.util.ReflectionUtils.getDeclaredMethods(ReflectionUtils.java:485) ~[spring-core-5.3.22.jar!/:5.3.22]
conductor-server  |     at org.springframework.util.ReflectionUtils.doWithLocalMethods(ReflectionUtils.java:321) ~[spring-core-5.3.22.jar!/:5.3.22]
conductor-server  |     at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.determineCandidateConstructors(AutowiredAnnotationBeanPostProcessor.java:267) ~[spring-beans-5.3.22.jar!/:5.3.22]
conductor-server  |     ... 26 more
conductor-server  | Caused by: java.lang.NoClassDefFoundError: com/netflix/conductor/common/run/WorkflowTestRequest
conductor-server  |     at java.lang.Class.getDeclaredMethods0(Native Method) ~[?:?]
conductor-server  |     at java.lang.Class.privateGetDeclaredMethods(Unknown Source) ~[?:?]
conductor-server  |     at java.lang.Class.getDeclaredMethods(Unknown Source) ~[?:?]
conductor-server  |     at org.springframework.util.ReflectionUtils.getDeclaredMethods(ReflectionUtils.java:467) ~[spring-core-5.3.22.jar!/:5.3.22]
conductor-server  |     at org.springframework.util.ReflectionUtils.doWithLocalMethods(ReflectionUtils.java:321) ~[spring-core-5.3.22.jar!/:5.3.22]
conductor-server  |     at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.determineCandidateConstructors(AutowiredAnnotationBeanPostProcessor.java:267) ~[spring-beans-5.3.22.jar!/:5.3.22]
conductor-server  |     ... 26 more
conductor-server  | Caused by: java.lang.ClassNotFoundException: com.netflix.conductor.common.run.WorkflowTestRequest
conductor-server  |     at java.net.URLClassLoader.findClass(Unknown Source) ~[?:?]
conductor-server  |     at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:?]
conductor-server  |     at org.springframework.boot.loader.LaunchedURLClassLoader.loadClass(LaunchedURLClassLoader.java:151) ~[conductor-server-0.1.0-SNAPSHOT-boot.jar:0.1.0-SNAPSHOT]
conductor-server  |     at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:?]
conductor-server  |     at java.lang.Class.getDeclaredMethods0(Native Method) ~[?:?]
conductor-server  |     at java.lang.Class.privateGetDeclaredMethods(Unknown Source) ~[?:?]
conductor-server  |     at java.lang.Class.getDeclaredMethods(Unknown Source) ~[?:?]
conductor-server  |     at org.springframework.util.ReflectionUtils.getDeclaredMethods(ReflectionUtils.java:467) ~[spring-core-5.3.22.jar!/:5.3.22]
conductor-server  |     at org.springframework.util.ReflectionUtils.doWithLocalMethods(ReflectionUtils.java:321) ~[spring-core-5.3.22.jar!/:5.3.22]
conductor-server  |     at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.determineCandidateConstructors(AutowiredAnnotationBeanPostProcessor.java:267) ~[spring-beans-5.3.22.jar!/:5.3.22]
conductor-server  |     ... 26 more
conductor-server exited with code 0

Expected behavior

Screenshots If applicable, add screenshots to help explain your problem.

Additional context

I am running this on an M1 chip Macbook. I had to make a few changes to docker-compose.yaml to build and run

  1. change the port of conductor-ui to 5001:5000 in docker-compose.yaml because 5001 on my host is occupied.
  2. change the platform of elasticsearch to amd64 with platform: linux/amd64 in docker-compose.yaml since there is no arm64 build of elasticsearch 6.
  3. change conductor-ui's Dockerfile to use node16 instead of node14.

I've tried to build from the source as well and it was failing with the same error.

andyren0110 avatar Jun 27 '23 06:06 andyren0110