Keycloak Docker -compose не использует изображение postgres - PullRequest
1 голос
/ 10 июля 2020

Я работаю с системой Windows 10. Я запускаю docker -compose up -d , чтобы запустить postgresql и изображения клавиатуры. Я использую объем docker для сохранения данных базы данных. Мой docker -compose файл:

version: '2.2'

volumes:
  files_volume:
    driver: local
  
services:
  postgres:
    image: postgres:12
    container_name: test_postgres
    volumes:
      - files_volume:/var/lib/postgresql/data
    expose:
      - 5432
    ports:
      - "15432:5432"
    environment:
      - "POSTGRES_DB=test"
      - "POSTGRES_USER=super-admin"
      - "POSTGRES_PASSWORD=super-password"
    mem_limit: 256m
    restart: unless-stopped
    
  keycloak:
    image: jboss/keycloak:10.0.2
    hostname: keycloak
    container_name: keycloak
    volumes:
      - files_volume:/opt/jboss/keycloak/standalone/log
    environment:
      DB_VENDOR: POSTGRES
      DB_ADDR: 'postgres'
      DB_DATABASE: 'test'
      DB_USER: 'super-admin'
      DB_SCHEMA: 'keycloak'
      DB_PASSWORD: 'super-password'
      KEYCLOAK_USER: 'admin'
      KEYCLOAK_PASSWORD: 'admin'
      PROXY_ADDRESS_FORWARDING: 'true'
      JDBC_PARAMS: 'useSSL=false'
    expose:
      - 8080
    ports:
      - "18080:8080"
    mem_limit: 1024m
    restart: unless-stopped
    depends_on:
      postgres:
        condition: service_started

Docker запускается нормально, но я не вижу схему keycloak в этой postgres базе данных. Когда я подключаюсь к keycloak и создаю область, клиентов и т. Д. И docker -compose down после перезапуска, я вижу, что для keycloak не осталось данных. Ни королевства, ни клиентов, ничего. Я считаю, что keycloak не видит postgres и использует базу данных H2.

Я использую том, потому что не могу использовать прямую папку. Может я что то не так делаю с объемами? Я новичок в docker.

1 Ответ

0 голосов
/ 17 июля 2020

Я решил проблему, остановив docker создание и удалив keycloak и postgres контейнеры. Потом удалил том. Затем запустил docker -compose, и все заработало нормально. Полагаю, что я запускал docker старых контейнеров с помощью docker compose, они были кэшированы. Таким образом, каждый раз при изменении docker файла compose контейнер, свойства которого были изменены, необходимо удалять.

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