Docker compose docker compose网络中的密钥斗篷
我想设置一个Docker网络,其中包含KeyClope、postgres和webapp实例 有没有一种方法既可以在容器之间进行网络通信,又可以理解oidc客户端重定向?我遇到了一个问题,如果我使用docker网络的容器名称设置OIDC,容器之间可以正常通信,但是我遇到了客户端问题,无法连接到主机上docker网络之外的相同URL 有人能给我指出正确的docker文档,让我看看DNS或主机到容器通信的可能解决方案吗 ----编辑--- 澄清。容器可以在容器名称下相互通信,但客户端(即Chrome)必须使用Docker compose docker compose网络中的密钥斗篷,docker-compose,keycloak,openid-connect,Docker Compose,Keycloak,Openid Connect,我想设置一个Docker网络,其中包含KeyClope、postgres和webapp实例 有没有一种方法既可以在容器之间进行网络通信,又可以理解oidc客户端重定向?我遇到了一个问题,如果我使用docker网络的容器名称设置OIDC,容器之间可以正常通信,但是我遇到了客户端问题,无法连接到主机上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
您只需在主机文件中添加一个条目:
- Windows:
C:\Windows\System32\drivers\etc\hosts
- Linux:
/etc/hosts
127.0.0.1钥匙斗篷
然后从用户界面使用
keydepot:8080
与keydepot服务器通话,而不是localhost:8080
。您仍然可以使用localhost:8580
访问浏览器中的UI。您不必修改etc/hosts文件。
有一个名为keydape\u FRONTEND\u URL的keydape环境变量
专门用于此目的
编辑docker compose文件,如下所示:
版本:“2”
服务:
用户界面:
容器名称:“ui”
图片:“bdparrish/ui:0.1”
建造:
上下文:。
dockerfile:./ui/dockerfile
端口:
- "8085:80"
取决于:
-“博士后”
-“钥匙斗篷”
网络:
-认证网络
环境:
-ASPNETCORE_环境=Docker
博士后:
容器名称:postgres
图片:“博士后”
环境:
POSTGRES_密码:PASSWORD
端口:
- "5432:5432"
网络:
-认证网络
钥匙斗篷:
容器名称:keydove
图片:jboss/keydape
端口:
- "8080:8080"
取决于:
-博士后
环境:
DB_供应商:“POSTGRES”
数据库地址:postgres
DB_端口:5432
DB_用户:密钥斗篷
DB_密码:密码
密钥斗篷用户:管理员
密码:密码
密钥斗篷\u前端\u URL=http://localhost:8080/auth
重新启动:始终
网络:
-认证网络
网络:
身份验证网络:
司机:驾驶台
然后,登录应该重定向到该url。您可以用容器名称发布您的设置吗?进入docker网络不应该是容器的问题。如果您的容器是可公开访问的,OIDC应该可以正常工作。我相信有一种方法可以像您所说的那样手动配置,但我正在寻找一种可以纠正问题的KeyClope配置,甚至是令牌请求工作流配置,正如这里所指出的:似乎没有更好的方法可以真正工作。谢谢