我想在jwilder的nginx-proxy后面有一个密钥斗篷,但是当它尝试连接到postgres数据库时出现错误。我测试了docker-compose示例,该示例可以正常工作,但是,一旦将keycloak容器连接到多个网络时,就会出现错误。
这是我完整的docker-compose文件。如您所见,我从keycloak提供的docker-compose示例开始,并刚刚添加了另一个服务和网络。当keycloak位于代理之后时,根据keycloak文档,我还指定了3个额外的环境变量VIRTUAL_HOST(nginx的FQDN),VIRTUAL_PORT(nginx重定向到的端口)和PROXY_ADDRESS_FORWARDING。
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