Импорт файлов конфигурации keycloak при использовании docker-compose - PullRequest
0 голосов
/ 21 февраля 2019

Я пытаюсь импортировать конфигурацию из одного экземпляра Keycloak во многие разные экземпляры Keycloak (каждый экземпляр для одного и того же приложения, просто разные разделы в моем потоке CICD)

Я запускаю Keycloak через Docker и нахожутрудно импортировать требуемый файл json

Чтобы получить фактические данные, которые я хочу импортировать, я перешел в требуемую область и просто нажал кнопку экспорта с выбранными клиентами и т. д.Это загрузило файл в мой браузер, который я теперь хочу импортировать, когда я собираю свои докер-контейнеры

Я перепробовал много разных методов, которые я нашел в Интернете, и ничего не работает, поэтому я был бы признателен за некоторыеhelp

Первым делом я попытался импортировать файл через файл docker-compose, используя следующее

KEYCLOAK_IMPORT: /realm-export.json

Следующее, что я попробовал, было также в моем docker-compose, где я пытался

command: "-b 0.0.0.0 -Djboss.http.port=8080 -Dkeycloak.migration.action=import -Dkeycloak.import=realm-export.json

Наконец, я попытался зайти в свой Dockerfile и запустить импорт в качестве CMD, используя следующую команду:

CMD ["-b 0.0.0.0", "-Dkeycloak.import=/opt/jboss/keycloak/realm-export.json"]

Ниже приведены мои текущие docker-compose и Dockerfiles без добавления импорта,они могли бы помочь ответить на этот вопрос.Заранее спасибо

# Dockerfile
FROM jboss/keycloak:4.8.3.Final
COPY keycloak-metrics-spi-1.0.1-SNAPSHOT.jar keycloak/standalone/deployments

И раздел выделенного ключа моего файла docker-compose

postgres:
    image: postgres
    volumes:
      - postgres_data:/var/lib/postgresql/data
    environment:
      POSTGRES_DB: keycl0ak
      POSTGRES_USER: keycl0ak
      POSTGRES_PASSWORD: password
    ports:
      - 5431:5431

  keycloak:
    build:
      context: services/keycloak
    environment:
      DB_VENDOR: POSTGRES
      DB_ADDR: postgres
      DB_DATABASE: keycl0ak
      DB_USER: keycl0ak
      DB_PASSWORD: password
      KEYCLOAK_USER: administrat0r
      KEYCLOAK_PASSWORD: asc88a8c0ssssqs
    ports:
      - 8080:8080
    depends_on:
      - postgres

volumes:
    postgres_data:
      driver: local

1 Ответ

0 голосов
/ 14 мая 2019

Объяснение

Сначала вам нужно скопировать файл в свой контейнер, прежде чем вы сможете импортировать его в Keycloak.Вы можете поместить ваш realm-export.json в папку рядом с docker-compose.yml, скажем, мы называем это imports.Это может быть достигнуто с помощью volumes:.После того как файл скопирован в контейнер, вы можете использовать command:, как и прежде, указывая на правильный файл в контейнере.

Структура файла

/your_computer/keycloak_stuff/
| - docker-compose.yml
| - imports -> realm-export.json

Docker-Compose

Вот как docker-compose.yml должен выглядеть с изменениями:

postgres:
    image: postgres
    volumes:
      - postgres_data:/var/lib/postgresql/data
    environment:
      POSTGRES_DB: keycl0ak
      POSTGRES_USER: keycl0ak
      POSTGRES_PASSWORD: password
    ports:
      - 5431:5431

  keycloak:
    build:
      context: services/keycloak
    volumes:
      - ./imports:/opt/jboss/keycloak/imports
    command: 
      - "-b 0.0.0.0 -Dkeycloak.import=/opt/jboss/keycloak/imports/realm-export.json"
    environment:
      DB_VENDOR: POSTGRES
      DB_ADDR: postgres
      DB_DATABASE: keycl0ak
      DB_USER: keycl0ak
      DB_PASSWORD: password
      KEYCLOAK_USER: administrat0r
      KEYCLOAK_PASSWORD: asc88a8c0ssssqs
    ports:
      - 8080:8080
    depends_on:
      - postgres

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