Интеграция Minio / Keycloak: в соединении отказано - PullRequest
1 голос
/ 29 мая 2020

Я пытаюсь подключить MinIO к KeyCloak и следую инструкциям, приведенным в этой документации: https://github.com/minio/minio/blob/master/docs/sts/keycloak.md

На данный момент я развернул контейнер Docker для сервер MinIO, еще один для MinioClient и третий для сервера KeyCloak.


Как вы можете видеть в следующем фрагменте, конфигурация контейнера Minio Client выполнена правильно, поскольку я могу перечислить сегменты, доступные на Minio Server:

mc ls myminio
[2020-05-14 11:54:59 UTC]      0B bucket1/
[2020-05-06 12:23:01 UTC]      0B bucket2/

У меня возникает проблема, когда я пытаюсь настроить MinIO, как показано в шаге 3 (Настройка MinIO) документации. Более подробно, я запускаю следующую команду:

mc admin config set myminio identity_openid config_url="http://localhost:8080/auth/realms/demo/.well-known/openid-configuration" client_id="account" 

И я получаю следующую ошибку:

mc: <ERROR> Cannot set 'identity_openid config_url=http://localhost:8080/auth/realms/demo/.well-known/openid-configuration client_id=account' to server. Get http://localhost:8080/auth/realms/demo/.well-known/openid-configuration: dial tcp 127.0.0.1:8080: connect: connection refused.

Когда я скручиваю этот адрес http://localhost:8080/auth/realms/demo/.well-known/openid-configuration из Контейнер клиента MinIO, я извлекаю файл JSON.

Ответы [ 2 ]

1 голос
/ 29 мая 2020

Connection refused возникает, когда порт недоступен на указанном нами имени хоста или IP. Пожалуйста, попробуйте раскрыть порт, используя флаг --expose вместе с номером порта, который вы должны sh раскрыть при использовании docker CLI. Затем, будучи разоблаченным, вы можете получить к нему доступ по адресу localhost

0 голосов
/ 29 мая 2020

Оказывается, все, что мне нужно было сделать, это изменить localhost в config_url с localhost на IP-адрес контейнера KeyCloak (172.17.0.3).

Это временное решение, которое работает на данный момент, но я продолжу поиск чего-то более конкретного, чем просто жесткое кодирование IP.

Когда я найду решение, этот ответ будет обновлен.

Обновление

Мне пришлось создать файл docker-compose.yml, как показано ниже, чтобы решить проблемы без необходимости вручную размещать IP-адрес контейнера KeyCloak.

version: '2'
services:

  miniod:
    image: minio/minio
    restart: always
    container_name: miniod 
    ports:
    - 9000:9000
    volumes:
    - "C:/data:/data"
    environment:
    - "MINIO_ACCESS_KEY=access_key" 
    - "MINIO_SECRET_KEY=secret_key"
    command: ["server", "/data"]
    networks:
    - minionw

  mcd:
    image: minio/mc 
    container_name: mcd
    networks:
    - minionw

  kcd: 
    image: quay.io/keycloak/keycloak:10.0.1
    container_name: kcd
    restart: always
    ports: 
    - 8080:8080
    environment: 
    - "KEYCLOAK_USER=admin"
    - "KEYCLOAK_PASSWORD=pass"
    networks: 
    - minionw

networks:
  minionw: 
    driver: "bridge"


Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...