bdp*_*ish 7 openid-connect keycloak docker-compose
我想设置一个包含keycloak,postgres和webapp实例的Docker网络.
有没有办法在容器之间进行网络通信,还能理解oidc客户端重定向?我有一个问题,容器可以互相交谈,如果我设置OIDC与docker网络的容器名称,但后来我遇到了客户端的问题,无法连接到Docker网络之外的那些相同的URL主机.
任何人都可以指向正确的docker文档来查看可能的DNS解决方案或主机到容器通信吗?
----编辑----
澄清.容器可以在容器名称下相互通信,但客户端(即Chrome)必须使用localhost与所有内容进行通信.在我的ui Web应用程序中的OIDC连接设置中,我必须使用容器名称或localhost.如何让我的客户了解容器名称以便提出正确的请求?
version: '2'
services:
ui:
container_name: 'ui'
image: 'bdparrish/ui:0.1'
build:
context: .
dockerfile: ./ui/Dockerfile
ports:
- "8085:80"
depends_on:
- "postgres"
- "keycloak"
networks:
- auth-network
environment:
- ASPNETCORE_ENVIRONMENT=Docker
postgres:
container_name: postgres
image: 'postgres'
environment:
POSTGRES_PASSWORD: password
ports:
- "5432:5432"
networks:
- auth-network
keycloak:
container_name: keycloak
image: jboss/keycloak
ports:
- "8080:8080"
depends_on:
- postgres
environment:
DB_VENDOR: "POSTGRES"
DB_ADDR: postgres
DB_PORT: 5432
DB_USER: keycloak
DB_PASSWORD: password
KEYCLOAK_USER: admin
KEYCLOAK_PASSWORD: password
restart: always
networks:
- auth-network
networks:
auth-network:
driver: bridge
Run Code Online (Sandbox Code Playgroud)
您不必修改etc/hosts 文件。KEYCLOAK_FRONTEND_URL为此,keycloak 有一个名为 especial 的环境变量。
编辑您的 docker compose 文件,如下所示:
version: '2'
services:
ui:
container_name: 'ui'
image: 'bdparrish/ui:0.1'
build:
context: .
dockerfile: ./ui/Dockerfile
ports:
- "8085:80"
depends_on:
- "postgres"
- "keycloak"
networks:
- auth-network
environment:
- ASPNETCORE_ENVIRONMENT=Docker
postgres:
container_name: postgres
image: 'postgres'
environment:
POSTGRES_PASSWORD: password
ports:
- "5432:5432"
networks:
- auth-network
keycloak:
container_name: keycloak
image: jboss/keycloak
ports:
- "8080:8080"
depends_on:
- postgres
environment:
DB_VENDOR: "POSTGRES"
DB_ADDR: postgres
DB_PORT: 5432
DB_USER: keycloak
DB_PASSWORD: password
KEYCLOAK_USER: admin
KEYCLOAK_PASSWORD: password
KEYCLOAK_FRONTEND_URL: http://localhost:8080/auth
restart: always
networks:
- auth-network
networks:
auth-network:
driver: bridge
Run Code Online (Sandbox Code Playgroud)
然后登录应该被重定向到该 url。
您需要做的就是向您的主机文件添加一个条目:
C:\Windows\System32\drivers\etc\hosts/etc/hosts将其附加到文件末尾:
127.0.0.1 keycloak
然后使用keycloak:8080您的 UI 与您的 keycloak 服务器对话,而不是使用localhost:8080. 您仍然可以使用localhost:8580浏览器来访问 UI。
| 归档时间: |
|
| 查看次数: |
1620 次 |
| 最近记录: |