对接合成网络中的密钥伪装 [英] Keycloak in docker-compose network

查看:0
本文介绍了对接合成网络中的密钥伪装的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我要设置一个包含KeyCloak、Postgres和WebApp实例的Docker网络。

有没有一种方法既可以在容器之间进行网络通信,又可以理解oidc客户端重定向?我遇到了一个问题,如果我使用扩展底座网络的容器名称设置OIDC,容器可以很好地相互通信,但随后我遇到了客户端无法连接到主机上扩展底座网络外部的相同URL的问题。

谁能向我推荐正确的码头文档,以查找使用DNS或主机到容器通信的可能解决方案?

-编辑-

澄清。容器在它们的容器名称下可以很好地相互通信,但客户端(即Chrome)必须使用localhost来与所有对象通信。在UIWeb应用程序的OIDC连接设置中,我必须使用容器名称或本地主机。如何让我的客户端理解容器名称以便发出正确的请求?

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

主机

您不必修改推荐答案/Hosts文件。 有一个名为KEYCLOAK_FRONTEND_URL的密钥罩环境变量专门用于此目的。

编辑您的扩展坞合成文件如下所示:

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

则应将登录重定向到该URL。

这篇关于对接合成网络中的密钥伪装的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆