我想设置一个包含keycloak,postgres和webapp实例的Docker网络。
是否有一种方式可以在容器之间进行网络通信,但同时也能理解OIDC客户端重定向? 我遇到了一个问题,如果我为docker网络设置容器名称,则容器之间可以很好地通信,但是客户端无法连接到主机上docker网络之外的相同URL时,我就会遇到问题。
是否有人可以指出我需要查看哪些Docker文档以获取与DNS或主机到容器通信相关的可能解决方案?
---- 编辑 ----
澄清一下。容器之间可以使用它们的容器名称进行良好的通信,但是客户端(例如Chrome)必须使用localhost
来进行所有通信。在我的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