Reputation: 910
I am going through setting up an auto-scaled cluster in AWS EC2 which has instances of Spring Boot Docker images.
I am able to manually fire up the image just fine in an AWS EC2 instance if I run the command:
docker run -e "SPRING_PROFILES_ACTIVE=foo" -p 9634:8080 <image>
However, when I setup the service task in AWS for an autoscaled cluster, it will run the image, Spring Boot will kick off, but Tomcat won't start up. It then fails the health check and exits the process repeating this service task over and over.
I have AWS configured to run the service task as a privileged user. What else do I need to do in order for the image to fire up Tomcat?
The Logs:
2016-08-22 17:41:38.548 INFO 1 --- [ main] com.foo.FooBarApplication : Starting FooBarApplication v0.0.1 on 1d31be68cda1 with PID 1 (/app.jar started by root in /)
2016-08-22 17:41:38.625 INFO 1 --- [ main] com.foo.FooBarApplication : The following profiles are active: dev
2016-08-22 17:41:38.868 INFO 1 --- [ main] s.c.a.AnnotationConfigApplicationContext : Refreshing org.springframework.context.annotation.AnnotationConfigApplicationContext@5c8da962: startup date [Mon Aug 22 17:41:38 UTC 2016]; root of context hierarchy
2016-08-22 17:41:40.812 INFO 1 --- [ main] trationDelegate$BeanPostProcessorChecker : Bean 'configurationPropertiesRebinderAutoConfiguration' of type [class org.springframework.cloud.autoconfigure.ConfigurationPropertiesRebinderAutoConfiguration$$EnhancerBySpringCGLIB$$fdc7c2d9] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2016-08-22 17:41:44.078 INFO 1 --- [ main] com.foo.FooBarApplication : Started FooBarApplication in 8.984 seconds (JVM running for 27.345)
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v1.3.2.RELEASE)
2016-08-22 17:41:44.296 INFO 1 --- [ main] c.c.c.ConfigServicePropertySourceLocator : Fetching config from server at: http://config-server-dev.us-east-1.elasticbeanstalk.com/
2016-08-22 17:41:45.153 INFO 1 --- [ main] c.c.c.ConfigServicePropertySourceLocator : Located environment: name=foo-bar, profiles=[dev], label=master, version=null
2016-08-22 17:41:45.159 INFO 1 --- [ main] b.c.PropertySourceBootstrapConfiguration : Located property source: CompositePropertySource [name='configService', propertySources=[MapPropertySource [name='https://git-codecommit.us-east-1.amazonaws.com/v1/repos/dev-config/foo-bar.yml'], MapPropertySource [name='https://git-codecommit.us-east-1.amazonaws.com/v1/repos/dev-config/application.yml']]]
2016-08-22 17:41:45.186 INFO 1 --- [ main] com.foo.FooBarApplication : The following profiles are active: dev
2016-08-22 17:41:45.215 INFO 1 --- [ main] ationConfigEmbeddedWebApplicationContext : Refreshing org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@3e6fa38a: startup date [Mon Aug 22 17:41:45 UTC 2016]; parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@5c8da962
2016-08-22 17:41:47.634 INFO 1 --- [ main] o.s.b.f.s.DefaultListableBeanFactory : Overriding bean definition for bean 'accessorialsMapping' with a different definition: replacing [Generic bean: class [com.foo.config.AccessorialsMapping]; scope=singleton; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null; defined in URL [jar:file:/app.jar!/com/foo/config/AccessorialsMapping.class]] with [Root bean: class [null]; scope=; abstract=false; lazyInit=false; autowireMode=3; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=fooBarConfiguration; factoryMethodName=configurationBean; initMethodName=null; destroyMethodName=(inferred); defined in class path resource [com/foo/config/FooBarConfiguration.class]]foofoofoo
2016-08-22 17:41:52.121 INFO 1 --- [ main] o.s.b.f.config.PropertiesFactoryBean : Loading properties file from URL [jar:file:/app.jar!/lib/spring-integration-core-4.2.4.RELEASE.jar!/META-INF/spring.integration.default.properties]
2016-08-22 17:41:52.301 INFO 1 --- [ main] o.s.i.config.IntegrationRegistrar : No bean named 'integrationHeaderChannelRegistry' has been explicitly defined. Therefore, a default DefaultHeaderChannelRegistry will be created.
2016-08-22 17:41:54.861 INFO 1 --- [ main] faultConfiguringBeanFactoryPostProcessor : No bean named 'errorChannel' has been explicitly defined. Therefore, a default PublishSubscribeChannel will be created.
2016-08-22 17:41:55.099 INFO 1 --- [ main] faultConfiguringBeanFactoryPostProcessor : No bean named 'taskScheduler' has been explicitly defined. Therefore, a default ThreadPoolTaskScheduler will be created.
2016-08-22 17:41:57.175 INFO 1 --- [ main] o.s.cloud.context.scope.GenericScope : BeanFactory id=1cf7e5f3-c000-3b6c-a1fa-5e27219c90be
2016-08-22 17:43:10.290 INFO 1 --- [ main] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.cloud.autoconfigure.ConfigurationPropertiesRebinderAutoConfiguration' of type [class org.springframework.cloud.autoconfigure.ConfigurationPropertiesRebinderAutoConfiguration$$EnhancerBySpringCGLIB$$fdc7c2d9] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2016-08-22 17:43:22.515 INFO 1 --- [ main] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.cloud.autoconfigure.RefreshEndpointAutoConfiguration' of type [class org.springframework.cloud.autoconfigure.RefreshEndpointAutoConfiguration$$EnhancerBySpringCGLIB$$30a5be0f] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
Upvotes: 1
Views: 565
Reputation: 910
The problem was that I didn't have enough memory set. Therefore, it was running out of memory before it got to Tomcat which made it look like everything was fine until it got to Tomcat. I bumped up the memory and it started up just fine.
Upvotes: 1