小编Chr*_*hie的帖子

Docker 网络 - Keycloak 无法连接到在单独的 docker 实例中运行的 postgresql

我有两个 docker 容器,一个运行 Keycloak 4.7.0.Final,一个运行 Postgresql。

Keycloak Dockerfile

FROM jboss/keycloak:4.7.0.Final

ADD themes/mytheme /opt/jboss/keycloak/themes/healthjoiner

ADD modules /opt/jboss/keycloak/modules/system/layers/keycloak
ADD standalone-ha.xml /opt/jboss/keycloak/standalone/configuration/
ADD keycloak-config.json /opt/jboss/

RUN mkdir -p $JBOSS_HOME/standalone/data

CMD ["-b", "0.0.0.0", "-Dkeycloak.migration.action=import -Dkeycloak.migration.provider=singleFile -Dkeycloak.migration.file=/opt/jboss/keycloak-config.json -Dkeycloak.migration.strategy=OVERWRITE_EXISTING"]
Run Code Online (Sandbox Code Playgroud)

Postgres Dockerfile

FROM postgres:9.5

# set root user details
ENV POSTGRES_PASSWORD=postgres
ENV POSTGRES_USER=postgres

ADD scripts/init.sql /docker-entrypoint-initdb.d/

# expose the 5432 port to outside the container
EXPOSE 5432
Run Code Online (Sandbox Code Playgroud)

这是 standalone-ha.xml 文件中的一个有问题的部分,特别是connection-url值。

<subsystem xmlns="urn:jboss:domain:datasources:5.0">
        <datasource jndi-name="java:jboss/datasources/KeycloakDS" pool-name="KeycloakDS" enabled="true"
                        use-java-context="true">
            <connection-url>jdbc:postgresql://my-net/keycloak</connection-url>
            <driver>postgresql</driver>
            <pool>
                <max-pool-size>20</max-pool-size>
            </pool>
            <security>
                <user-name>keycloak</user-name>
                <password>sa</password> …
Run Code Online (Sandbox Code Playgroud)

postgresql docker keycloak

5
推荐指数
1
解决办法
5455
查看次数

标签 统计

docker ×1

keycloak ×1

postgresql ×1