Keycloak за прокси с базой данных - PullRequest
0 голосов
/ 12 ноября 2018

Я бы хотел иметь keycloak за nginx-прокси jwilder, но я получаю сообщение об ошибке при попытке подключения к базе данных postgres. Я протестировал пример docker-compose, и он сработал, но как только я подключил контейнер keycloak к нескольким сетям, я получил ошибки. Либо

  • WFLYSRV0073: Неверная опция 'x.x.x.x' (внутренний IP-адрес контейнера postgres) или
  • Дублирующийся ресурс (когда nginx запускается вне compose, а затем keycloak просто пытается подключиться к внешней сети nginx)

Вот мой полный файл docker-compose. как вы можете видеть, я начал с примера docker-compose, предоставленного keycloak, и просто добавил другой сервис и сеть. Я также указал 3 дополнительные переменные среды VIRTUAL_HOST (полное доменное имя для nginx), VIRTUAL_PORT (порт, на который перенаправляется nginx) и PROXY_ADDRESS_FORWARDING в соответствии с документацией о keycloak, когда keycloak находится за прокси.

version: '3'

networks:
  keycloak:
    driver: bridge
  nginx:
    driver: bridge

volumes:
  postgres_data:
      driver: local

services:
  nginx:
    image: jwilder/nginx-proxy:alpine
    restart: always
    networks:
      - nginx
    ports:
      - 8000:80
      - 8001:443
    volumes:
      - /var/run/docker.sock:/tmp/docker.sock:ro
  postgres:
    image: postgres:alpine
    volumes:
      - postgres_data:/var/lib/postgresql/data
    environment:
      - POSTGRES_DB=keycloak
      - POSTGRES_USER=keycloak
      - POSTGRES_PASSWORD=password
    networks:
      - keycloak
  keycloak:
    image: jboss/keycloak
    environment:
      - VIRTUAL_HOST=keycloak.local
      - VIRTUAL_PORT=8080
      - DB_VENDOR=POSTGRES
      - DB_ADDR=postgres
      - DB_DATABASE=keycloak
      - DB_USER=keycloak
      - DB_PASSWORD=password
      - KEYCLOAK_USER=admin
      - KEYCLOAK_PASSWORD=Pa55w0rd
      - PROXY_ADDRESS_FORWARDING=true
    depends_on:
      - nginx
      - postgres
    networks:
      - nginx
      - keycloak
...