Я бы хотел иметь 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