我正在使用 docker-compose,并尝试将其部署在 VPS Centos 8 上,但 keycloak 无法访问 postgres 数据库。 不过我可以使用 pgAdmin 连接到数据库。
我有以下错误:
Caused by: java.net.NoRouteToHostException: No route to host (Host unreachable)
at java.base/java.net.PlainSocketImpl.socketConnect(Native Method)
at java.base/java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:399)
at java.base/java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:242)
at java.base/java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:224)
at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:403)
at java.base/java.net.Socket.connect(Socket.java:609)
at <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="016e73662f716e727566736472706d2f6b6563624135332f332f34" rel="noreferrer noopener nofollow">[email protected]</a>//org.postgresql.core.PGStream.<init>(PGStream.java:70)
at <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="cda2bfaae3bda2beb9aabfa8bebca1e3a7a9afae8df9ffe3ffe3f8" rel="noreferrer noopener nofollow">[email protected]</a>//org.postgresql.core.v3.ConnectionFactoryImpl.tryConnect(ConnectionFactoryImpl.java:91)
at <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="46293421683629353221342335372a682c22242506727468746873" rel="noreferrer noopener nofollow">[email protected]</a>//org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:192)
... 62 more
13:34:55,281 FATAL [org.keycloak.services] (ServerService Thread Pool -- 65) java.lang.RuntimeException: Failed to connect to database
和
13:34:56,307 ERROR [org.jboss.as.controller.management-operation] (Controller Boot Thread) WFLYCTL0013: Operation ("add") failed - address: ([("subsyste m" => "microprofile-metrics-smallrye")]): java.lang.NullPointerException
at <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="d5baa7b2fba2bcb9b1b3b9acfbb0ada1b0bba6bcbabbfbb8bcb6a7baa5a7bab3bcb9b0fbb8b0a1a7bcb6a6f8a6b8b4b9b9a7acb095e4ecfbe4fbe5fb93bcbbb4b9" rel="noreferrer noopener nofollow">[email protected]</a>//org.wildfly.extension.microprofile.metrics.MicroProfileMetricsSubsystemAdd$ 2.execute(MicroProfileMetricsSubsystemAdd.java:86)
at <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="0a65786d246068657979246b79246965647e786566666f784a3b3b243b243b244c63646b66" rel="noreferrer noopener nofollow">[email protected]</a>//org.jboss.as.controller.AbstractOperationContext.executeStep(AbstractOperationContext.java:999)
at <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="107f62773e7a727f63633e71633e737f7e64627f7c7c75625021213e213e213e56797e717c" rel="noreferrer noopener nofollow">[email protected]</a>//org.jboss.as.controller.AbstractOperationContext.processStages(AbstractOperationContext.java:743)
at <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="b9d6cbde97d3dbd6caca97d8ca97dad6d7cdcbd6d5d5dccbf988889788978897ffd0d7d8d5" rel="noreferrer noopener nofollow">[email protected]</a>//org.jboss.as.controller.AbstractOperationContext.executeOperation(AbstractOperationContext.java:467)
at <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="abc4d9cc85c1c9c4d8d885cad885c8c4c5dfd9c4c7c7ced9eb9a9a859a859a85edc2c5cac7" rel="noreferrer noopener nofollow">[email protected]</a>//org.jboss.as.controller.OperationContextImpl.executeOperation(OperationContextImpl.java:1413)
at <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="ea85988dc48088859999c48b99c48985849e988586868f98aadbdbc4dbc4dbc4ac83848b86" rel="noreferrer noopener nofollow">[email protected]</a>//org.jboss.as.controller.ModelControllerImpl.boot(ModelControllerImpl.java:527)
at <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="d1bea3b6ffbbb3bea2a2ffb0a2ffb2bebfa5a3bebdbdb4a391e0e0ffe0ffe0ff97b8bfb0bd" rel="noreferrer noopener nofollow">[email protected]</a>//org.jboss.as.controller.AbstractControllerService.boot(AbstractControllerService.java:515)
at <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="d8b7aabff6b2bab7ababf6b9abf6bbb7b6acaab7b4b4bdaa98e9e9f6e9f6e9f69eb1b6b9b4" rel="noreferrer noopener nofollow">[email protected]</a>//org.jboss.as.controller.AbstractControllerService.boot(AbstractControllerService.java:477)
at <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="c7a8b5a0e9ada5a8b4b4e9a6b4e9b4a2b5b1a2b587f6f6e9f6e9f6e981aea9a6ab" rel="noreferrer noopener nofollow">[email protected]</a>//org.jboss.as.server.ServerService.boot(ServerService.java:448)
at <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="16796471387c74796565387765386573646073645627273827382738507f78777a" rel="noreferrer noopener nofollow">[email protected]</a>//org.jboss.as.server.ServerService.boot(ServerService.java:401)
at <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="7e110c1950141c110d0d501f0d501d11100a0c1112121b0c3e4f4f504f504f503817101f12" rel="noreferrer noopener nofollow">[email protected]</a>//org.jboss.as.controller.AbstractControllerService$1.run(AbstractControllerService.java:416)
at java.base/java.lang.Thread.run(Thread.java:834)
这是我的 docker-compose.yml :
version: "3.7"
services:
keycloak:
container_name: app-keycloak
depends_on:
- postgres
environment:
# Admin account
KEYCLOAK_USER: foo
KEYCLOAK_PASSWORD: foo
#KEYCLOAK_IMPORT: /tmp/realm-export.json
# PostgreSQL DB settings
DB_VENDOR: POSTGRES
DB_ADDR: postgres
DB_PORT: 5432
DB_DATABASE: foo
DB_SCHEMA: public
DB_USER: foo
DB_PASSWORD: foo
image: "jboss/keycloak:10.0.2"
ports:
- "9999:8080"
restart: always
networks:
- auth-network
postgres:
container_name: app-postgres
environment:
POSTGRES_DB: foo
POSTGRES_PASSWORD: foo
POSTGRES_USER: foo
image: "postgres:13-alpine"
ports:
- "5432:5432"
restart: always
volumes:
- "./volumes/postgres-data:/var/lib/postgresql/data"
networks:
- auth-network
networks: auth-network:
driver: bridge
您对如何解决这个问题有什么想法吗?
最佳答案
对于我的 Windows 10 PC,该解决方案有效,但我的 VPS 上仍然存在这些错误 Centos 8. 你还有其他想法吗?
firewall-cmd --zone=public --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: eth0
sources:
services: cockpit dhcpv6-client https ssh
ports: 8077/tcp 27017/tcp 8081/tcp 9999/tcp 5432/tcp 8443/tcp 8080/tcp
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
关于postgresql - docker-compose 与 keycloak 和 postgres,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63035855/