geoserver / geoserver-cloud

Cloud Native GeoServer is GeoServer ready to use in the cloud through dockerized microservices.
http://geoserver.org/geoserver-cloud
Other
245 stars 74 forks source link

build failed #447

Closed gaoyunpeng closed 3 months ago

gaoyunpeng commented 5 months ago

Dair All:

According to the instructions, building the system failed. A screenshot is attached。

container images os webui

groldan commented 4 months ago

Hi, which instructions are you following? I'm confused by the statement "building the system failed" but the screenshots are not related to the build but to a failed deployment?

In any case the missing GeoServerResourceLoader error indicates you didn't configure one of the catalog backends. When running gscloud, you need to choose between datadir and pgconfig.

Here are sample docker compose files for both options that should run out of the box:

http://geoserver.org/geoserver-cloud/deploy/docker-compose/stable/shared_datadir/docker-compose.yml

https://geoserver.org/geoserver-cloud/deploy/docker-compose/stable/pgconfig/compose.yml

MissingLoves commented 4 months ago

Hello, may I ask if this problem has been resolved? I have also encountered this problem so far!(你好,请问这个问题解决了吗,我目前也碰到了这个问题)

vshautsova commented 4 months ago

UPD: I resolved the issue below, it was due to not checked properly config submodule.

Hello!

I am working on building geoserver cloud custom images and then deploying them. And tomcat fails to start with the error message

Creating shared instance of singleton bean 'dataDirectory'
2024-05-16 11:43:48.381 DEBUG 1 --- [           main] o.s.b.f.s.DefaultListableBeanFactory     : Creating shared instance of singleton bean 'authenticationManager'
2024-05-16 11:43:48.381 DEBUG 1 --- [           main] o.s.b.f.s.DefaultListableBeanFactory     : Creating shared instance of singleton bean 'dataDirectory'
2024-05-16 11:43:48.382 DEBUG 1 --- [           main] o.s.b.f.s.DefaultListableBeanFactory     : Bean creation exception on singleton FactoryBean type check: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'rememberMeServices' defined in URL [jar:file:/opt/app/bin/BOOT-INF/lib/gs-main-2.24.2-CLOUD.jar!/applicationSecurityContext.xml]: Cannot resolve reference to bean 'geoServerSecurityManager' while setting constructor argument; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'authenticationManager' defined in class path resource [org/geoserver/cloud/security/GeoServerSecurityConfiguration.class]: Unsatisfied dependency expressed through method 'cloudAuthenticationManager' parameter 0; nested exception is org.springframework.beans.factory.BeanCurrentlyInCreationException: Error creating bean with name 'dataDirectory': Requested bean is currently in creation: Is there an unresolvable circular reference?
2024-05-16 11:43:48.383 ERROR 1 --- [           main] o.s.b.web.embedded.tomcat.TomcatStarter  : Error starting Tomcat context. Exception: org.springframework.beans.factory.UnsatisfiedDependencyException. Message: Error creating bean with name 'webMvcMetricsFilter' defined in class path resource [org/springframework/boot/actuate/autoconfigure/metrics/web/servlet/WebMvcMetricsAutoConfiguration.class]: Unsatisfied dependency expressed through method 'webMvcMetricsFilter' parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'compositeMeterRegistry' defined in class path resource [org/springframework/boot/actuate/autoconfigure/metrics/CompositeMeterRegistryConfiguration.class]: Initialization of bean failed; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'geoserverCatalogMetrics' defined in class path resource [org/geoserver/cloud/autoconfigure/metrics/catalog/CatalogMetricsAutoConfiguration.class]: Unsatisfied dependency expressed through method 'geoserverCatalogMetrics' parameter 1; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'catalog' defined in class path resource [org/geoserver/cloud/config/catalog/backend/core/CoreBackendConfiguration.class]: Unsatisfied dependency expressed through method 'localWorkspaceCatalog' parameter 0; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'advertisedCatalog' defined in class path resource [org/geoserver/cloud/config/catalog/backend/core/CoreBackendConfiguration.class]: Unsatisfied dependency expressed through method 'advertisedCatalog' parameter 0; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'dataDirectory' defined in class path resource [org/geoserver/cloud/config/catalog/backend/core/CoreBackendConfiguration.class]: Unsatisfied dependency expressed through method 'dataDirectory' parameter 0; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'org.geoserver.platform.GeoServerResourceLoader' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {}
2024-05-16 11:43:48.462  INFO 1 --- [           main] o.apache.catalina.core.StandardService   : Stopping service [Tomcat]

I encountered this error in v1.6.1 and v1.7.3. v1.7.3 was built by me manually with using make install build-image push-image. v1.6.1. is a bit trickier, now it is built via pipeline and uses make commands. I had to change ACL version to at least 2.0-M2, otherwise there another exception: org.springframework.beans.factory.BeanDefinitionStoreException: Failed to process import candidates for configuration class [org.geoserver.cloud.wms.app.WmsApplication]; nested exception is java.io.FileNotFoundException: class path resource [org/geoserver/acl/authorization/cache/CachingAuthorizationServiceConfiguration.class] cannot be opened because it does not exist After fixing that, it also fails with NoSuchBeanDefinitionException.

Our configuration uses datadir, and one more thing I do not understand yet. I was able to build manually v1.6.1 in the begining of April on windows machine. It works fine. All my other attempts (in Linux environment) fail with No qualifying bean of type 'org.geoserver.platform.GeoServerResourceLoader' available exception.

I am new to GEO projects and appreciate your help there. Please let me know if you need any additional details for the issue.

groldan commented 3 months ago

Hi @vshautsova, sorry for the late reply

my first question would be if you really need to build it yourself. Like in, are you making changes to the code that require a custom build?

Otherwise you'd be better served by just using the docker images from dockerhub and set up a docker compose file.

You can use the one mentioned in the quick start as a base http://geoserver.org/geoserver-cloud/deploy/docker-compose/stable/shared_datadir/docker-compose.yml

vshautsova commented 3 months ago

Hi @groldan no worries, I can totally understand this. I do need to build it myself to provide a few custom changes. Previously, we used the docker images and the documentation you provided is very comprehensive and is easy enough to follow. With custom setup, I only had challenge with CI/CD set up to ensure the proper build of a docker image.

groldan commented 3 months ago

great then! good luck