Vulas启动失败,后端出现异常 [英] Vulas startup failed with an exception in the backend
问题描述
我正在尝试在其中一台VM上运行 Vulas 泊坞窗设置.我遵循了本指南.当我执行文档的Run
阶段时,后端服务无法启动.我有以下例外情况,无法解释我的情况.
I am trying to run the Vulas docker setup on one of our VMs. I followed this guide. When I perform the Run
stage of the documentation, the backend service fails to start. I have the following exception which explains me nothing.
#docker logs d04ea50241f7
2018-12-18 10:28:50.841 ERROR 9 --- [ost-startStop-1] o.a.tomcat.jdbc.pool.ConnectionPool : Unable to create initial connections of pool.
org.postgresql.util.PSQLException: FATAL: role "root" does not exist
at org.postgresql.core.v3.ConnectionFactoryImpl.readStartupMessages(ConnectionFactoryImpl.java:712) ~[postgresql-9.4.1208.jre7.jar!/:9.4.1208.jre7]
at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:213) ~[postgresql-9.4.1208.jre7.jar!/:9.4.1208.jre7]
at org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:66) ~[postgresql-9.4.1208.jre7.jar!/:9.4.1208.jre7]
at org.postgresql.jdbc.PgConnection.<init>(PgConnection.java:215) ~[postgresql-9.4.1208.jre7.jar!/:9.4.1208.jre7]
at org.postgresql.Driver.makeConnection(Driver.java:406) ~[postgresql-9.4.1208.jre7.jar!/:9.4.1208.jre7]
at org.postgresql.Driver.connect(Driver.java:274) ~[postgresql-9.4.1208.jre7.jar!/:9.4.1208.jre7]
at org.apache.tomcat.jdbc.pool.PooledConnection.connectUsingDriver(PooledConnection.java:319) ~[tomcat-jdbc-8.5.32.jar!/:na]
at java.lang.Thread.run(Thread.java:748) [na:1.8.0_181]
2018-12-18 10:28:50.846 ERROR 9 --- [ost-startStop-1] o.s.b.c.embedded.tomcat.TomcatStarter : Error starting Tomcat context. Exception: org.springframework.beans.factory.UnsatisfiedDependencyException. Message: Error creating bean with name 'dispatcherServletRegistration' defined in class path resource [org/springframework/boot/autoconfigure/web/DispatcherServletAutoConfiguration$DispatcherServletRegistrationConfiguration.class]: Unsatisfied dependency expressed through method 'dispatcherServletRegistration' parameter 0; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'hubIntegrationController' defined in URL [jar:file:/vulas/rest-backend.jar!/BOOT-INF/classes!/com/sap/psr/vulas/backend/rest/HubIntegrationController.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'applicationRepositoryImpl': Unsatisfied dependency expressed through field 'appRepository'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'applicationRepository': Cannot create inner bean '(inner bean)#5368a637' of type [org.springframework.orm.jpa.SharedEntityManagerCreator] while setting bean property 'entityManager'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name '(inner bean)#5368a637': Cannot resolve reference to bean 'entityManagerFactory' while setting constructor argument; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'flywayInitializer' defined in class path resource [org/springframework/boot/autoconfigure/flyway/FlywayAutoConfiguration$FlywayConfiguration.class]: Invocation of init method failed; nested exception is org.flywaydb.core.internal.exception.FlywaySqlException:
Unable to obtain database connection
------------------------------------
SQL State : 28000
Error Code : 0
Message : FATAL: role "root" does not exist
启动的Docker容器是
The docker containers that are up are
~/vulas/vulnerability-assessment-tool# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
05a90996f80d docker_haproxy "/docker-entrypoint.…" 7 minutes ago Up 7 minutes 0.0.0.0:8034->7070/tcp, 0.0.0.0:8033->8080/tcp vulas-os-haproxy
2877eeb8db76 docker_patch-lib-analyzer "/vulas/run.sh" 7 minutes ago Up 7 minutes 8080/tcp vulas-os-patch-lib-analyzer
7d05307d9149 docker_frontend-bugs "catalina.sh run" 7 minutes ago Up 7 minutes 8080/tcp vulas-os-frontend-bugs
84311f182d98 docker_rest-lib-utils "/bin/sh -c 'java -D…" 7 minutes ago Up 7 minutes 8092/tcp vulas-os-rest-lib-utils
a55cc03b8ee8 docker_frontend-apps "catalina.sh run" 7 minutes ago Up 7 minutes 8080/tcp vulas-os-frontend-apps
45a7210170e7 docker_postgresql "docker-entrypoint.s…" 7 minutes ago Up 7 minutes 0.0.0.0:8032->5432/tcp vulas-os-postgresql
推荐答案
由于上述评论解决了该问题,因此我将发布答案以使该问题更具可见性.
since the above comment resolves the issue I will post an answer to give more visibility to this question.
您遇到的问题是由 .env
文件.在
The issue you faced was caused by a missing or changed user in the .env
file used by Vulas. At this line we can see that Postgres, before creating the database, checks if both POSTGRES_USER
and POSTGRES_PASSWORD
are set. I can see that in your output the Postgres container started, so at some point in time in the .env
file there were those environment variables set. Probably you changed or deleted the POSTGRES_USER
. By doing so Vulas tried to connect to Postgres with a different user with respect to the one that created the database, thus failing to initialize the connection.
在第一次运行Vulas之前,必须修改.env
文件.如果需要更改数据库的连接参数,则需要创建一个新参数.为了删除当前数据库并创建一个新数据库,在Vulas存储库的docker
文件夹中输入命令docker-compose down -v
.这将擦除每个卷.
It is mandatory to modify the .env
file before running Vulas for the first time. If you need to change the connection's parameters to the database you need to create a new one. In order to drop the current DB and create a new one give the command docker-compose down -v
while in the docker
folder of Vulas' repository. This will erase each volume.
这篇关于Vulas启动失败,后端出现异常的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!