Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

dependencytrack/apiserver not running while configuring Postgresql db with Docker Compose #3835

Closed
2 tasks done
thesk7828 opened this issue Jun 11, 2024 · 4 comments
Closed
2 tasks done

Comments

@thesk7828
Copy link

thesk7828 commented Jun 11, 2024

Current Behavior

dependencytrack/apiserver keeps on restarting whenever Postgreql db connection is configured in docker-compose.yml file.

image

Steps to Reproduce

  1. Create db along with user/password in Postgresql with following commands:
sudo -u postgres psql
postgres=# create database mydb;
postgres=# create user myuser with encrypted password 'mypass';
postgres=# grant all privileges on database mydb to myuser;
  1. nano docker-compose.yml
  2. Enabling the following configurations for Posgresql db connection in dependencytrack/apiserver environment:
    - ALPINE_DATABASE_MODE=external
    - ALPINE_DATABASE_URL=jdbc:postgresql://localhost:5432/mydb
    - ALPINE_DATABASE_DRIVER=org.postgresql.Driver
    - ALPINE_DATABASE_USERNAME=myuser
    - ALPINE_DATABASE_PASSWORD=mypass
  1. docker compose version

image
5. docker compose up -d

image
6. docker ps -a

image
7. Goto Firefox browser (or any) and observe the obvious behaviour

image

Expected Behavior

CONTAINER ID   IMAGE                       COMMAND                  CREATED       STATUS                                     PORTS                                       NAMES
589e6201a1d8   dependencytrack/frontend    "/docker-entrypoint.…"   2 hours ago   Up 2 hours                                 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp   ubuntu-dtrack-frontend-1
b72297d6eb84   dependencytrack/apiserver   "/bin/sh -c 'exec ja…"   2 hours ago   Up 2 hours (health: starting)              0.0.0.0:8081->8080/tcp, :::8081->8080/tcp   ubuntu-dtrack-apiserver-1

Dependency-Track Version

4.11.3

Dependency-Track Distribution

Container Image

Database Server

PostgreSQL

Database Server Version

16.3

Browser

Mozilla Firefox

Checklist

@thesk7828 thesk7828 added defect Something isn't working in triage labels Jun 11, 2024
@nscuro
Copy link
Member

nscuro commented Jun 11, 2024

So what are the API server logs saying?

docker compose logs -f dtrack-apiserver

Any warnings or errors in the PostgreSQL logs?

@thesk7828
Copy link
Author

dtrack-apiserver-1  | 2024-06-11 18:16:52,688 INFO [Config] Initializing Configuration
dtrack-apiserver-1  | 2024-06-11 18:16:52,689 INFO [Config] System property alpine.application.properties not specified
dtrack-apiserver-1  | 2024-06-11 18:16:52,690 INFO [Config] Loading application.properties from classpath
dtrack-apiserver-1  | 2024-06-11 18:16:52,698 INFO [Config] --------------------------------------------------------------------------------
dtrack-apiserver-1  | 2024-06-11 18:16:52,698 INFO [Config] Application:  Dependency-Track
dtrack-apiserver-1  | 2024-06-11 18:16:52,699 INFO [Config] Version:      4.11.3
dtrack-apiserver-1  | 2024-06-11 18:16:52,700 INFO [Config] Built-on:     2024-06-03T09:33:35Z
dtrack-apiserver-1  | 2024-06-11 18:16:52,700 INFO [Config] --------------------------------------------------------------------------------
dtrack-apiserver-1  | 2024-06-11 18:16:52,700 INFO [Config] Framework:    Alpine
dtrack-apiserver-1  | 2024-06-11 18:16:52,702 INFO [Config] Version :     2.2.5
dtrack-apiserver-1  | 2024-06-11 18:16:52,703 INFO [Config] Built-on:     2024-02-29T20:30:01Z
dtrack-apiserver-1  | 2024-06-11 18:16:52,703 INFO [Config] --------------------------------------------------------------------------------
dtrack-apiserver-1  | 2024-06-11 18:16:52,810 INFO [RequirementsVerifier] Initializing requirements verifier
dtrack-apiserver-1  | 2024-06-11 18:16:52,811 INFO [UpgradeInitializer] Initializing upgrade framework
dtrack-apiserver-1  | 2024-06-11 18:16:53,082 ERROR [UpgradeMetaProcessor] An error occurred connecting to the database.
dtrack-apiserver-1  | org.postgresql.util.PSQLException: Connection to localhost:5432 refused. Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections.
dtrack-apiserver-1  | 	at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:346)
dtrack-apiserver-1  | 	at org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:54)
dtrack-apiserver-1  | 	at org.postgresql.jdbc.PgConnection.<init>(PgConnection.java:273)
dtrack-apiserver-1  | 	at org.postgresql.Driver.makeConnection(Driver.java:446)
dtrack-apiserver-1  | 	at org.postgresql.Driver.connect(Driver.java:298)
dtrack-apiserver-1  | 	at java.sql/java.sql.DriverManager.getConnection(Unknown Source)
dtrack-apiserver-1  | 	at java.sql/java.sql.DriverManager.getConnection(Unknown Source)
dtrack-apiserver-1  | 	at alpine.server.upgrade.UpgradeMetaProcessor.createConnection(UpgradeMetaProcessor.java:187)
dtrack-apiserver-1  | 	at alpine.server.upgrade.UpgradeMetaProcessor.<init>(UpgradeMetaProcessor.java:63)
dtrack-apiserver-1  | 	at org.dependencytrack.upgrade.UpgradeInitializer.contextInitialized(UpgradeInitializer.java:56)
dtrack-apiserver-1  | 	at org.eclipse.jetty.server.handler.ContextHandler.callContextInitialized(ContextHandler.java:1049)
dtrack-apiserver-1  | 	at org.eclipse.jetty.servlet.ServletContextHandler.callContextInitialized(ServletContextHandler.java:624)
dtrack-apiserver-1  | 	at org.eclipse.jetty.server.handler.ContextHandler.contextInitialized(ContextHandler.java:984)
dtrack-apiserver-1  | 	at org.eclipse.jetty.servlet.ServletHandler.initialize(ServletHandler.java:740)
dtrack-apiserver-1  | 	at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:392)
dtrack-apiserver-1  | 	at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1304)
dtrack-apiserver-1  | 	at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:901)
dtrack-apiserver-1  | 	at org.eclipse.jetty.servlet.ServletContextHandler.doStart(ServletContextHandler.java:306)
dtrack-apiserver-1  | 	at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:532)
dtrack-apiserver-1  | 	at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93)
dtrack-apiserver-1  | 	at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:171)
dtrack-apiserver-1  | 	at org.eclipse.jetty.server.Server.start(Server.java:470)
dtrack-apiserver-1  | 	at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:114)
dtrack-apiserver-1  | 	at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:89)
dtrack-apiserver-1  | 	at org.eclipse.jetty.server.Server.doStart(Server.java:415)
dtrack-apiserver-1  | 	at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93)
dtrack-apiserver-1  | 	at alpine.embedded.EmbeddedJettyServer.main(EmbeddedJettyServer.java:100)
dtrack-apiserver-1  | Caused by: java.net.ConnectException: Connection refused
dtrack-apiserver-1  | 	at java.base/sun.nio.ch.Net.pollConnect(Native Method)
dtrack-apiserver-1  | 	at java.base/sun.nio.ch.Net.pollConnectNow(Unknown Source)
dtrack-apiserver-1  | 	at java.base/sun.nio.ch.NioSocketImpl.timedFinishConnect(Unknown Source)
dtrack-apiserver-1  | 	at java.base/sun.nio.ch.NioSocketImpl.connect(Unknown Source)
dtrack-apiserver-1  | 	at java.base/java.net.SocksSocketImpl.connect(Unknown Source)
dtrack-apiserver-1  | 	at java.base/java.net.Socket.connect(Unknown Source)
dtrack-apiserver-1  | 	at org.postgresql.core.PGStream.createSocket(PGStream.java:243)
dtrack-apiserver-1  | 	at org.postgresql.core.PGStream.<init>(PGStream.java:98)
dtrack-apiserver-1  | 	at org.postgresql.core.v3.ConnectionFactoryImpl.tryConnect(ConnectionFactoryImpl.java:136)
dtrack-apiserver-1  | 	at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:262)
dtrack-apiserver-1  | 	... 26 common frames omitted
dtrack-apiserver-1  | 2024-06-11 18:16:53,083 ERROR [UpgradeInitializer] An error occurred determining database schema version. Unable to continue.
dtrack-apiserver-1  | alpine.server.upgrade.UpgradeException: An error occurred connecting to the database.
dtrack-apiserver-1  | 	at alpine.server.upgrade.UpgradeMetaProcessor.createConnection(UpgradeMetaProcessor.java:193)
dtrack-apiserver-1  | 	at alpine.server.upgrade.UpgradeMetaProcessor.<init>(UpgradeMetaProcessor.java:63)
dtrack-apiserver-1  | 	at org.dependencytrack.upgrade.UpgradeInitializer.contextInitialized(UpgradeInitializer.java:56)
dtrack-apiserver-1  | 	at org.eclipse.jetty.server.handler.ContextHandler.callContextInitialized(ContextHandler.java:1049)
dtrack-apiserver-1  | 	at org.eclipse.jetty.servlet.ServletContextHandler.callContextInitialized(ServletContextHandler.java:624)
dtrack-apiserver-1  | 	at org.eclipse.jetty.server.handler.ContextHandler.contextInitialized(ContextHandler.java:984)
dtrack-apiserver-1  | 	at org.eclipse.jetty.servlet.ServletHandler.initialize(ServletHandler.java:740)
dtrack-apiserver-1  | 	at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:392)
dtrack-apiserver-1  | 	at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1304)
dtrack-apiserver-1  | 	at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:901)
dtrack-apiserver-1  | 	at org.eclipse.jetty.servlet.ServletContextHandler.doStart(ServletContextHandler.java:306)
dtrack-apiserver-1  | 	at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:532)
dtrack-apiserver-1  | 	at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93)
dtrack-apiserver-1  | 	at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:171)
dtrack-apiserver-1  | 	at org.eclipse.jetty.server.Server.start(Server.java:470)
dtrack-apiserver-1  | 	at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:114)
dtrack-apiserver-1  | 	at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:89)
dtrack-apiserver-1  | 	at org.eclipse.jetty.server.Server.doStart(Server.java:415)
dtrack-apiserver-1  | 	at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93)
dtrack-apiserver-1  | 	at alpine.embedded.EmbeddedJettyServer.main(EmbeddedJettyServer.java:100)
dtrack-apiserver-1  | Caused by: org.postgresql.util.PSQLException: Connection to localhost:5432 refused. Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections.
dtrack-apiserver-1  | 	at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:346)
dtrack-apiserver-1  | 	at org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:54)
dtrack-apiserver-1  | 	at org.postgresql.jdbc.PgConnection.<init>(PgConnection.java:273)
dtrack-apiserver-1  | 	at org.postgresql.Driver.makeConnection(Driver.java:446)
dtrack-apiserver-1  | 	at org.postgresql.Driver.connect(Driver.java:298)
dtrack-apiserver-1  | 	at java.sql/java.sql.DriverManager.getConnection(Unknown Source)
dtrack-apiserver-1  | 	at java.sql/java.sql.DriverManager.getConnection(Unknown Source)
dtrack-apiserver-1  | 	at alpine.server.upgrade.UpgradeMetaProcessor.createConnection(UpgradeMetaProcessor.java:187)
dtrack-apiserver-1  | 	... 19 common frames omitted
dtrack-apiserver-1  | Caused by: java.net.ConnectException: Connection refused
dtrack-apiserver-1  | 	at java.base/sun.nio.ch.Net.pollConnect(Native Method)
dtrack-apiserver-1  | 	at java.base/sun.nio.ch.Net.pollConnectNow(Unknown Source)
dtrack-apiserver-1  | 	at java.base/sun.nio.ch.NioSocketImpl.timedFinishConnect(Unknown Source)
dtrack-apiserver-1  | 	at java.base/sun.nio.ch.NioSocketImpl.connect(Unknown Source)
dtrack-apiserver-1  | 	at java.base/java.net.SocksSocketImpl.connect(Unknown Source)
dtrack-apiserver-1  | 	at java.base/java.net.Socket.connect(Unknown Source)
dtrack-apiserver-1  | 	at org.postgresql.core.PGStream.createSocket(PGStream.java:243)
dtrack-apiserver-1  | 	at org.postgresql.core.PGStream.<init>(PGStream.java:98)
dtrack-apiserver-1  | 	at org.postgresql.core.v3.ConnectionFactoryImpl.tryConnect(ConnectionFactoryImpl.java:136)
dtrack-apiserver-1  | 	at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:262)
dtrack-apiserver-1  | 	... 26 common frames omitted

@nscuro
Copy link
Member

nscuro commented Jun 11, 2024

You're configuring the database URL to point to localhost, but the database is not running on the same host as the API server. The localhost in the API server container is not the same as the localhost on your machine.

You may be able to get away with using docker.host.internal instead, otherwise you'll need to provide the IP address of the machine that is running your PostgreSQL instance.

Closing because this is not a defect in Dependency-Track.

@nscuro nscuro closed this as not planned Won't fix, can't repro, duplicate, stale Jun 11, 2024
@nscuro nscuro added not an issue and removed defect Something isn't working pending more information labels Jun 11, 2024
Copy link
Contributor

This thread has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.

@github-actions github-actions bot locked as resolved and limited conversation to collaborators Jul 12, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

2 participants